gpt4 book ai didi

android - addToBackStack 不适用于 onBackPressed 方法

转载 作者:行者123 更新时间:2023-11-30 00:39:03 25 4
gpt4 key购买 nike

我在抽屉导航 Activity 中创建了一个选项卡式 Activity 。我已将抽屉导航内的列表与各个 fragment 链接起来。我还在 ft.commit() 之前使用了命令 ft.addToBackStack(null)。它非常好,我可以用它来关闭抽屉导航内的 fragment 。现在我已经在选项卡式 Activity (主页)的 fragment 内创建了 webview。我添加了 onBackPressed 返回到 webview 中,现在 addToBackStack 方法停止工作。

对于抽屉导航 fragment ,

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();
}

onBackPressed方法

@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());



}

请帮帮我!!!

最佳答案

试试这段代码:在你的选项卡式 Activity (主页)中覆盖 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();
}
}

关于android - addToBackStack 不适用于 onBackPressed 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42864812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com