我在导航抽屉活动内创建了一个选项卡式活动。我已经将导航抽屉内的列表与单个片段链接在一起。我还在 ft.commit(( 之前使用了命令 ft.addToBackStack(null(。它非常好,我能够用它来关闭导航抽屉内的碎片。现在,我已经在选项卡式活动(主页(的片段内创建了Web视图。我添加了onBackPress以返回Web视图,现在addToBackStack方法停止工作。
对于导航抽屉碎片,
private void dispaySelectedScreen(int id) {
Fragment fragment = null;
switch (id) {
case R.id.fragment1:
fragment = new Fragment1();
break;
case R.id.fragment2:
fragment = new Fragment2();
break;
case R.id.fragment3:
fragment = new Fragment3();
break;
case R.id.fragment4:
fragment = new fragment4();
break;
}
if (fragment != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_main, fragment);
ft.addToBackStack(null);
ft.commit();
}
背压法
@Override
public void onBackPressed() {
if (hWebView.canGoBack()) {
hWebView.goBack();
} else if (!getFragmentManager().popBackStackImmediate())
if (sWebView.canGoBack()) {
sWebView.goBack();
} else if (!getFragmentManager().popBackStackImmediate())
if (dWebView.canGoBack()) {
dWebView.goBack();
} else if (!getFragmentManager().popBackStackImmediate());
}
请帮帮我!!
请尝试以下代码:覆盖选项卡式活动(主页(中的onBackPressed()
。
@Override
public void onBackPressed() {
FragmentManager fm = getSupportFragmentManager();
if (hWebView.canGoBack()) {
hWebView.goBack();
} else if (!getFragmentManager().popBackStackImmediate())
if (fm.getBackStackEntryCount() > 0) {
fm.popBackStack();
} else {
super.onBackPressed();
}
}