簡體   English   中英

onbackpressed的嵌套片段轉到MainActivity而不是后片段

[英]Nested Fragment onbackpresssed goes to MainActivity instead of back fragment

我從“活動”移到“ FagmentA”,然后從“片段A”移到“片段B”。 當停留在FragmentB中的同時按向后按鈕時,它將轉到MainActivity(它應移至一個Back片段,即FragmentA)。 它出什么問題了?

從活動轉移到FragmentA

   Fragment fragment = new FragmentA() ;
            FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
            fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,
                    android.R.anim.fade_out);
            fragmentTransaction.replace(R.id.frame, fragment, CURRENT_TAG);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commitAllowingStateLoss();

將FramgentA移至FragmentB

 layout.removeAllViewsInLayout();
            Fragment fragment =new FragmentB ;
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.frame, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();

后壓式MainActivity

 @Override
public void onBackPressed() {
    android.app.FragmentManager fm = getFragmentManager();
    if(fm.getBackStackEntryCount()>0){
        fm.popBackStack();
    }else{
        super.onBackPressed(); 
    }

您的問題是您同時使用FragmentManager的導入:

android.support.v4.app.FragmentManagerandroid.app.FragmentManager

改變這個:

@Override
public void onBackPressed() {
    android.app.FragmentManager fm = getFragmentManager();
    if(fm.getBackStackEntryCount()>0){
        fm.popBackStack();
    }else{
        super.onBackPressed(); 
    }

至:

@Override
public void onBackPressed() {
    FragmentManager fm = getSupportFragmentManager();
    if(fm.getBackStackEntryCount()>0){
        fm.popBackStack();
    }else{
        super.onBackPressed(); 
    }

您只能使用支持FragmentManager添加Fragment這意味着您的現有代碼將始終在此處返回0-> fm.getBackStackEntryCount()直到您使用正確的支持FragmentManager為止

暫無
暫無

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

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