[英]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.