如何将嵌套片段添加到选项卡式视图寻呼机内的 backstack?
How to add nested fragment to backstack inside a tabbed view pager?
我的应用程序包含两个选项卡,在两个选项卡内每个选项卡都有 4-5 个嵌套片段,在嵌套片段内 addtobackstack 不起作用?
我如何将嵌套片段添加到后台堆栈,因为当我单击嵌套片段内的后退按钮时,我的应用正在关闭意味着它正在调用 super.onBackKeyPressed 方法。
你应该使用 ChildFragmentManager
这是片段替换功能。
fun replace(fragment: Fragment){
childFragmentManager
.beginTransaction()
.replace(R.id.fragmentContainer, fragment)
.commit()
}
并覆盖大多数父片段中的 onBackPressed 方法。
override fun onBackPressed() {
val pop = childFragmentManager.popBackStackImmediate()
if (!pop){
super.onBackPressed()
}
}
我用kotlin写的,希望你能understand.If你需要更多信息,请问我。
将此代码添加到您的 activity
public void onBackPressed() {
FragmentManager fm = getSupportFragmentManager();
if (fm.getFragments() != null) {
for (Fragment frag : fm.getFragments()) {
if (frag.isVisible()) {
FragmentManager chilFrag = frag.getChildFragmentManager();
if (chilFrag.getBackStackEntryCount() > 0) {
chilFrag.popBackStack();
return;
}
}
}
}
super.onBackPressed();
}
使用 ChildFragmentManager
并检查活动选项卡是否有 BackStackEntry
,如果有则弹出 backstack 否则调用 super.onBackKeyPressed
关于这个答案的完整描述:
我的应用程序包含两个选项卡,在两个选项卡内每个选项卡都有 4-5 个嵌套片段,在嵌套片段内 addtobackstack 不起作用? 我如何将嵌套片段添加到后台堆栈,因为当我单击嵌套片段内的后退按钮时,我的应用正在关闭意味着它正在调用 super.onBackKeyPressed 方法。
你应该使用 ChildFragmentManager
这是片段替换功能。
fun replace(fragment: Fragment){
childFragmentManager
.beginTransaction()
.replace(R.id.fragmentContainer, fragment)
.commit()
}
并覆盖大多数父片段中的 onBackPressed 方法。
override fun onBackPressed() {
val pop = childFragmentManager.popBackStackImmediate()
if (!pop){
super.onBackPressed()
}
}
我用kotlin写的,希望你能understand.If你需要更多信息,请问我。
将此代码添加到您的 activity
public void onBackPressed() {
FragmentManager fm = getSupportFragmentManager();
if (fm.getFragments() != null) {
for (Fragment frag : fm.getFragments()) {
if (frag.isVisible()) {
FragmentManager chilFrag = frag.getChildFragmentManager();
if (chilFrag.getBackStackEntryCount() > 0) {
chilFrag.popBackStack();
return;
}
}
}
}
super.onBackPressed();
}
使用 ChildFragmentManager
并检查活动选项卡是否有 BackStackEntry
,如果有则弹出 backstack 否则调用 super.onBackKeyPressed
关于这个答案的完整描述: