簡體   English   中英

我們需要有關片段導航問題的幫助

[英]We need help regarding Fragment navigation issue

我們需要有關片段導航問題的幫助

我有Acitvity1 ,其中動態添加fragmentA和fragmentA有一個按鈕,其名稱為next ,如果我們按next按鈕,則fragmentB被午餐。 現在,當按設備硬件后退按鈕,然后按onCreateView調用fragmentA。

在這里,我的問題是,我們如何才能在onResume狀態下通過阻止oncreateView調用先前的Retain狀態來恢復/調用fragmentA

請幫助我的朋友,真的有麻煩了,謝謝。

我認為您使用了FragmentTransaction的replace方法,但應該使用add代替。 參閱文件

請發布您的一些源代碼,以使視圖更清晰

您可以使用backstackentry參閱

@Override
public void onBackPressed() {
    loadPreviousFragment();
}

private boolean loadPreviousFragment() {
    FragmentManager fm = getSupportFragmentManager();
    for(int i = 0; i < fm.getBackStackEntryCount(); i++){
        if(fm.getBackStackEntryAt(i).getName().equals(FRAGMENT_A )){
            fm.getFragments().get(i).onResume();
            return true;
        }

        if(fm.getBackStackEntryAt(i).getName().equals(FRAGMENT_B )){
            fm.getFragments().get(i).onResume();
            return true;
        }
    }
}

當添加片段時,只需設置backstak名稱

fragmentTransaction.addToBackStack(FRAGMENT_A);

據我了解,您稱片段替換。 您有3個變體:

  1. 調用fragmentTransaction.add()而不是關閉replace,您將同時在屏幕上顯示2個片段,第一個可能應該是不可見的。 如果您返回上一個片段,則不會進行onCreateView調用。
  2. 存儲對第一個片段的引用,並在fragmentTransaction的add方法中使用它
  3. 在屏幕上添加fragmentB時,調用addToBackStack

暫無
暫無

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

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