欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

測(cè)試項(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:全部添加回退棧的操作

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

開(kāi)啟.png

回退的時(shí)候

結(jié)束.png

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

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

開(kāi)啟.png

回退的時(shí)候

結(jié)束.png

結(jié)論

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

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

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

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

注意有一個(gè)還會(huì)是原來(lái)的值,是因?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)行開(kāi)發(fā),感興趣的朋友可以了解下
    2021-01-01
  • Android中播放在線音樂(lè)代碼

    Android中播放在線音樂(lè)代碼

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

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

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

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

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