繁体   English   中英

Android后退按钮和片段活动

[英]Android back button and fragment activity

我有一个使用片段的活动,当该活动首次创建时,它显示第一个片段,该片段未添加到后退堆栈中,因为当用户按下时我不想有一个空的活动。

之后加载的片段将添加到后堆栈中。

因此,我有我想要的行为,除了:用户可以打开片段并按回去以返回到上一个片段,直到到达第一个片段为止,因为如果此时按下,则活动已关闭,我不这样做。不想。

因此,我想知道一个很好的解决方案,以防止仅在显示第一个片段时才按下后退按钮。

从活动中调用新片段时,添加.addToBackStack(null)。

FragmentTransaction mFragmentTransaction = getFragmentManager()
                    .beginTransaction();
        ....
        mFragmentTransaction.addToBackStack(null);

-将onBackPressed()添加到您的活动中

   @Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() == 0) {
        this.finish();
    } 
else {
        getFragmentManager().popBackStack();
    }
}

像这样解决:

@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount()> 0) {
        super.onBackPressed();
    }
}

在活动类中,在onBackPressed方法中添加以下代码;

@Override
public void onBackPressed() {
int backstack = getSupportFragmentManager().getBackStackEntryCount();

 if (backstack > 0) {
     getSupportFragmentManager().popBackStack();
 }
  else{
      super.onBackPressed();
      //System.exit(0);
  }
}

希望有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM