Android實(shí)現(xiàn)類(lèi)似IOS右滑返回的效果(原因分析及解決辦法)
使用類(lèi)庫(kù)SwipeBackLayout
https://github.com/Issacw0ng/SwipeBackLayout
出現(xiàn)的問(wèn)題:
1. 主Activity返回時(shí)黑屏或者返回只是看到桌面背景而沒(méi)有看到上一個(gè)Activity界面
原因:
使用滑動(dòng)返回需要在Activity的額主題中聲明android:windowIsTranslucent=true,而該屬性是設(shè)置Activity為是否為透明主題,當(dāng)主Activity采用透明主題時(shí),由于是app Activity棧中的第一個(gè),所以滑動(dòng)返回時(shí)會(huì)看到桌面或是黑屏
解決:
主Activity不要打開(kāi)滑動(dòng)返回功能(本身也不需要),只在需要滑動(dòng)返回的Activity使用,可以定義下面的主題,根據(jù)需要給不同的Activity設(shè)置主題:
<style name="BaseTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:windowIsTranslucent">true</item> </style> <style name="MainTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:windowIsTranslucent">false</item> </style>
2.另外一個(gè)問(wèn)題發(fā)生在Activity切換時(shí)其生命周期上:
當(dāng)用戶打開(kāi)新的Activity或是切換到桌面時(shí),回調(diào)如下:onPause->onStop.
這里有一種特殊情況,如新Activity采用了透明主題,那么當(dāng)前Activity不會(huì)回調(diào)onStop
有些時(shí)候需要在onStop里面做一些處理,如果使用了透明主題則不會(huì)調(diào)用,一個(gè)替代方案是在onPause里面去執(zhí)行,當(dāng)然得注意的是無(wú)論是在onStop或是在onPause里面,都不能執(zhí)行太耗時(shí)的操作,否則會(huì)影響新Activity的啟動(dòng)
以上所述是小編給大家介紹的Android實(shí)現(xiàn)類(lèi)似IOS右滑返回的效果(原因分析及解決辦法),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
Android中使用TagFlowLayout制作動(dòng)態(tài)添加刪除標(biāo)簽
這篇文章主要介紹了Android中使用TagFlowLayout制作動(dòng)態(tài)添加刪除標(biāo)簽的步驟詳解,需要的朋友參考下吧2017-07-07Android開(kāi)發(fā)vsts?agent支持自定義task過(guò)程詳解
這篇文章主要介紹了Android開(kāi)發(fā)vsts?agent支持自定義task過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04Android仿簡(jiǎn)書(shū)搜索框效果的示例代碼
本篇文章主要介紹了Android仿簡(jiǎn)書(shū)搜索框效果的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10Android 檢查更新、下載、安裝功能的實(shí)現(xiàn)
這篇文章主要介紹了Android 檢查更新、下載、安裝功能的實(shí)現(xiàn)的相關(guān)資料,這里附有實(shí)例代碼,具有一定的參考價(jià)值,需要的朋友可以參考下2017-01-01android中使用react-native設(shè)置應(yīng)用啟動(dòng)頁(yè)過(guò)程詳解
這篇文章主要介紹了android中使用react-native設(shè)置應(yīng)用啟動(dòng)頁(yè)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07