最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android Fragment多層嵌套重影問題的解決方法

 更新時間:2016年08月25日 14:45:41   作者:Winter_H  
這篇文章主要介紹了Android Fragment多層嵌套重影問題的解決方法,從解決bug的思想,導致原因,原理解析等方面找出問題所在原因,最終解決方法就可以簡單了,對fragment 多層嵌套問題感興趣的朋友一起通過本文學習吧

1解決bug的思想:

//step1:當bug被發(fā)現(xiàn)(排除極低偶然性,單次性,開發(fā)工具導致)

//step2:根據(jù)經(jīng)驗判斷bug的重現(xiàn)場景,多次測試,直到精準的定位bug

//step3:根據(jù)重現(xiàn)場景找到對應的代碼

//step4:分析區(qū)域代碼是否會影響到其他功能.

//step5:做好數(shù)據(jù)的備份工作.(做好代碼重構(gòu)和恢復的準備,這樣你才能肆無忌憚的搗鼓代碼)

//step6:修復代碼的過程中,你會發(fā)現(xiàn)可能有多種解決方案.試著采取不影響主線的解決方案.以免影響到其他的代碼.

//step7:回顧所有的審查和測試等工作。思考bug的出現(xiàn)原因,避免下次再犯同類型的錯誤.

2導致原因

//step1:開發(fā)中,我們需要經(jīng)常需要多個Fragment間切換,并且保存每個Fragment的狀態(tài).

//step2:官方的方法是使用replace()來替換Fragment,但是replace()的調(diào)用會導致Fragment的onCreteView()被調(diào)用,所以切換界面時會無法保存當前的狀態(tài).

//step3:因此一般采用add()、hide()與show()配合,來達到保存Fragment的狀態(tài).

3原理解析

//step1:正是因為使用了Fragment的狀態(tài)保存,當系統(tǒng)內(nèi)存不足,F(xiàn)ragment的宿主Activity回收的時候,F(xiàn)ragment的實例并沒有隨之被回收。

//step2:Activity被系統(tǒng)回收時,會主動調(diào)用onSaveInstance()方法來保存視圖層(View Hierarchy),然后通過onRestoreInstanceState()方法來恢復視圖層.(activity中兩個方法的核心代碼如下)
//step3:所以當Activity通過導航再次被重建時,之前被實例化過的Fragment依然會出現(xiàn)在Activity中
protected void onRestoreInstanceState(Bundle savedInstanceState) {
if (mWindow != null) {
//取出視圖層
Bundle windowState = savedInstanceState.getBundle(WINDOW_HIERARCHY_TAG);
if (windowState != null) {
mWindow.restoreHierarchyState(windowState);
}
}
}
protected void onSaveInstanceState(Bundle outState) {
//保存視圖層
outState.putBundle(WINDOW_HIERARCHY_TAG, mWindow.saveHierarchyState());
Parcelable p = mFragments.saveAllState();
if (p != null) {
outState.putParcelable(FRAGMENTS_TAG, p);
}
getApplication().dispatchActivitySaveInstanceState(this, outState);
}

4解決方法(了解清楚后解決方法就容易了)

//solution1:

第一.簡單的做法,就是給每層fragment加上背景色,重疊后也就看不見了

//solution2:

第二.進行判空操作.

如果為空,創(chuàng)建對象,add上去;

如果不為空,直接show出來;

(注意不要使用remove方法移除,hide即可)

以上所述是小編給大家介紹的Android Fragment多層嵌套重影問題的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Flutter實現(xiàn)底部導航欄創(chuàng)建詳解

    Flutter實現(xiàn)底部導航欄創(chuàng)建詳解

    ConvexBottomBar是一個底部導航欄組件,用于展現(xiàn)凸起的TAB效果,支持多種內(nèi)置樣式與動畫交互。本文將利用ConvexBottomBar創(chuàng)建漂亮的底部導航欄,感興趣的可以學習一下
    2022-01-01
  • Android中實現(xiàn)Webview頂部帶進度條的方法

    Android中實現(xiàn)Webview頂部帶進度條的方法

    這篇文章主要介紹了Android中實現(xiàn)Webview頂部帶進度條的方法,當前很流行的一個效果,就是打開網(wǎng)頁時會在頂部顯示一個打開進度條,需要的朋友可以參考下
    2015-01-01
  • Kotlin?掛起函數(shù)CPS轉(zhuǎn)換原理解析

    Kotlin?掛起函數(shù)CPS轉(zhuǎn)換原理解析

    這篇文章主要為大家介紹了Kotlin?掛起函數(shù)CPS轉(zhuǎn)換原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Android繪制動態(tài)折線圖

    Android繪制動態(tài)折線圖

    這篇文章主要為大家詳細介紹了Android繪制動態(tài)折線圖,折線圖隨著手指的滑動進行動態(tài)繪制效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Android編程實現(xiàn)號碼歸屬地查詢的方法

    Android編程實現(xiàn)號碼歸屬地查詢的方法

    這篇文章主要介紹了Android編程實現(xiàn)號碼歸屬地查詢的方法,涉及Android xml文件的發(fā)送及WebService的操作技巧,需要的朋友可以參考下
    2016-01-01
  • Android EditText被軟鍵盤遮蓋的處理方法

    Android EditText被軟鍵盤遮蓋的處理方法

    android app新增了透明欄效果,結(jié)果發(fā)現(xiàn)鍵盤彈起后會遮蓋屏幕底部的EditText,沒有像想象中的調(diào)整窗口大小,并滾動ScrollView,將EditText顯示在鍵盤上方。下面小編把解決方法記錄一下,特此分享到腳本之家平臺,感興趣的朋友一起看看吧
    2016-10-10
  • Android實現(xiàn)商品展示效果

    Android實現(xiàn)商品展示效果

    這篇文章主要為大家詳細介紹了Android實現(xiàn)商品展示效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Android開發(fā)實現(xiàn)圓形圖片功能示例

    Android開發(fā)實現(xiàn)圓形圖片功能示例

    這篇文章主要介紹了Android開發(fā)實現(xiàn)圓形圖片功能,涉及Android實現(xiàn)圓形圖片的界面布局與CirImageView組件相關(guān)使用操作技巧,需要的朋友可以參考下
    2019-04-04
  • Android仿QQ好友詳情頁下拉頂部圖片縮放效果

    Android仿QQ好友詳情頁下拉頂部圖片縮放效果

    這篇文章主要為大家詳細介紹了Android仿QQ好友詳情頁下拉頂部圖片縮放效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Android實現(xiàn)倒計時30分鐘功能

    Android實現(xiàn)倒計時30分鐘功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)倒計時30分鐘功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論

高邑县| 柳江县| 南召县| 昌吉市| 邢台市| 营口市| 合阳县| 增城市| 丰顺县| 汉川市| 宁晋县| 乡城县| 泰顺县| 大城县| 安宁市| 盖州市| 东港市| 思南县| 连州市| 万山特区| 凤凰县| 德兴市| 东乡县| 卫辉市| 永德县| 宁陵县| 庐江县| 咸丰县| 和龙市| 阳曲县| 福贡县| 衡阳市| 秦安县| 惠来县| 牡丹江市| 雷波县| 太康县| 水富县| 两当县| 陇南市| 益阳市|