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

關(guān)于Android Fragment對(duì)回退棧的詳細(xì)理解

 更新時(shí)間:2024年06月13日 11:16:10   作者:藍(lán)庫知識(shí)  
這篇文章主要介紹了Android  Fragment的回退棧示例詳細(xì)介紹的相關(guān)資料,在Android中Fragment回退棧是由Activity管理的,每個(gè)Activity都有自己的回退棧,其中保存了已經(jīng)停止(處于后臺(tái))的Fragment實(shí)例,需要的朋友可以參考下

測試項(xiàng)目

FragmentActivity

public class FragmentActivity extends AppCompatActivity {
    private FrameLayout frameLayout;
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fragment);
        frameLayout = findViewById(R.id.fl_content);
        button = findViewById(R.id.btn_click);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Fragment fTwo = new FragmentOne();
                FragmentManager fm = getSupportFragmentManager();
                FragmentTransaction tx = fm.beginTransaction();
                tx.replace(R.id.fl_content, fTwo, "One");
                tx.addToBackStack(null);//添加回退棧
                tx.commit();
                System.out.println("fm.getBackStackEntryCount() = " + fm.getBackStackEntryCount());
            }
        });
    }
}

FragmentOne(FragmentTwo、FragmentThree同理)

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View mView = inflater.inflate(R.layout.fragment_one, container, false);
        editText = mView.findViewById(R.id.et_input);
        button = mView.findViewById(R.id.btn_next);
        System.out.println("mView.findViewById = "+editText);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Fragment fTwo = new FragmentTwo();
                FragmentManager fm = getActivity().getSupportFragmentManager();
                FragmentTransaction tx = fm.beginTransaction();
                tx.replace(R.id.fl_content, fTwo, "TWO");
                tx.addToBackStack(null);
                tx.commit();
                System.out.println( "fm.getBackStackEntryCount() = "+ fm.getBackStackEntryCount());
            }
        });

        return mView;
    }

    @Override
    public void onStop() {
        super.onStop();
        Log.d("Tina======>", "onStop");
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        Log.d("Tina======>", "onDestroyView"+editText);
    }

    @Override
    public void onDetach() {
        super.onDetach();
        Log.d("Tina======>", "onDetach");
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d("Tina======>", "onDestroy");
    }

前提條件是添加fragmet的時(shí)候都是用的replace(先remove 后add)

操作1:全部添加回退棧的操作

生命周期開啟的時(shí)候,打開到第三個(gè)fragment

開啟.png

回退的時(shí)候

結(jié)束.png

操作2:fragmentOne不加回退棧,其他加

生命周期開啟的時(shí)候

開啟.png

回退的時(shí)候

結(jié)束.png

結(jié)論

1.replace 會(huì)銷毀視圖,生命周期走到了onDestroyView

2.加入回退棧,返回的時(shí)候,fragment還可以重新顯示出來,否則返回的時(shí)候,就直接銷毀了

3.加入回退棧后,返回時(shí)會(huì)重新走onCreateView方法,重新綁定視圖,也就是說,實(shí)例對(duì)象會(huì)變

舉例:recyclerview的話,返回來后,之前setAdapter就沒有了,因?yàn)閷?duì)象換了

注意有一個(gè)還會(huì)是原來的值,是因?yàn)樗鼘?duì)數(shù)據(jù)有保存,他就是edictText(要有id值)

到此這篇關(guān)于關(guān)于Android Fragment對(duì)回退棧詳細(xì)理解的文章就介紹到這了,更多相關(guān)Android Fragment回退棧內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android自定義View實(shí)現(xiàn)多圖片選擇控件

    Android自定義View實(shí)現(xiàn)多圖片選擇控件

    這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)多圖片選擇控件,具有一定的實(shí)用性,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android使用Gallery實(shí)現(xiàn)照片拖動(dòng)的特效

    Android使用Gallery實(shí)現(xiàn)照片拖動(dòng)的特效

    這篇文章主要介紹了Android如何使用Gallery實(shí)現(xiàn)照片拖動(dòng)的特效,幫助大家更好的理解和利用Android進(jìn)行開發(fā),感興趣的朋友可以了解下
    2021-01-01
  • Android中播放在線音樂代碼

    Android中播放在線音樂代碼

    這篇文章主要介紹了Android中播放在線音樂代碼,本文只給出了核心操作代碼,需要的朋友可以參考下
    2015-04-04
  • 詳解Android使用Handler造成內(nèi)存泄露的分析及解決方法

    詳解Android使用Handler造成內(nèi)存泄露的分析及解決方法

    這篇文章主要介紹了詳解Android使用Handler造成內(nèi)存泄露的分析及解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • AndroidImageSlider實(shí)現(xiàn)炫酷輪播廣告效果

    AndroidImageSlider實(shí)現(xiàn)炫酷輪播廣告效果

    這篇文章主要為大家詳細(xì)介紹了AndroidImageSlider實(shí)現(xiàn)炫酷輪播廣告效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 最新評(píng)論

    铁岭市| 长沙市| 犍为县| 吴忠市| 萨嘎县| 金川县| 临颍县| 麻栗坡县| 房产| 宕昌县| 自治县| 修武县| 镇坪县| 格尔木市| 枣强县| 安国市| 栾川县| 成安县| 齐齐哈尔市| 融水| 永康市| 永定县| 邻水| 石台县| 山西省| 西乌珠穆沁旗| 吐鲁番市| 齐齐哈尔市| 长岛县| 滨海县| 忻州市| 武宁县| 温州市| 红桥区| 板桥市| 确山县| 乌审旗| 红原县| 元朗区| 泸溪县| 巴青县|