首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将嵌套片段添加到选项卡式视图寻呼机内的后台堆栈中?

如何将嵌套片段添加到选项卡式视图寻呼机内的后台堆栈中?
EN

Stack Overflow用户
提问于 2018-04-30 06:47:04
回答 3查看 869关注 0票数 1

我的应用程序包含两个选项卡,在两个选项卡中每个选项卡有4-5个嵌套片段,嵌套片段中的外接程序堆栈不工作吗?如何将嵌套片段添加到后台,因为当我单击嵌套片段中的后退按钮时,我的应用程序即将关闭,这意味着它正在调用super.onBackKeyPressed方法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-30 06:56:54

将此代码添加到活动中

代码语言:javascript
复制
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();
}
票数 3
EN

Stack Overflow用户

发布于 2018-04-30 06:48:30

你应该使用ChildFragmentManager

这是片段替换函数。

代码语言:javascript
复制
fun replace(fragment: Fragment){
  childFragmentManager
    .beginTransaction()
    .replace(R.id.fragmentContainer, fragment)
    .commit()
}

并在大多数父片段中重写onBackPressed方法。

代码语言:javascript
复制
override fun onBackPressed() {
val pop = childFragmentManager.popBackStackImmediate()
if (!pop){
  super.onBackPressed()
}

}

我和kotlin一起写的,我希望你可以understand.If你需要更多的信息,请问我。

票数 1
EN

Stack Overflow用户

发布于 2018-04-30 06:57:31

使用ChildFragmentManager并检查活动选项卡是否有BackStackEntry,如果有,则弹出Back堆栈,否则调用super.onBackKeyPressed

关于这个答案的完整描述:https://stackoverflow.com/a/37961649/4832356

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50095265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档