簡體   English   中英

不要從堆棧中刪除碎片

[英]Do not remove fragment from backstack

我想將fragments保存在管理器中,即使單擊返回也是如此。 這是代碼:

 FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                .beginTransaction();
        fragmentTransaction.setCustomAnimations(R.anim.slide_in_right_frag, R.anim.slide_out_left_frag, R.anim.slide_in_left, R.anim.slide_out_right);

        FragmentManager manager = getSupportFragmentManager();
        manager.findFragmentByTag(title);

        if (manager.findFragmentByTag(title) == null) {
            fragmentTransaction.replace(R.id.fragment_container, fragment, title);
            if (addToBackStack) {
                fragmentTransaction.addToBackStack(null);
            }
            fragmentTransaction.commit();
        } else {
            fragmentTransaction.show(manager.findFragmentByTag(title)).commit();
        }

現在,如果我單擊onBack則會從后台堆棧和管理器中刪除我的fragment 即使單擊返回,我也要保存此片段,因此,如果單擊下一步,我想返回此片段。 這是我的方式:

frag1 -> clickOnNext -> frag2 -> put some data in edittexts ->
clickOnBack -> frag1 -> clickOnNext -> frag2(frag has data from first time).

現在,始終獲取fragment2新實例。

使用fragmentTransaction.add(R.id.fragment_container, fragment, title); 而不是fragmentTransaction.replace(R.id.fragment_container, fragment, title);

並處理活動onBackPressed事件中片段的顯示/隱藏。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM