首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们需要关于片段导航问题的帮助

我们需要关于片段导航问题的帮助
EN

Stack Overflow用户
提问于 2014-08-07 07:51:22
回答 3查看 41关注 0票数 0

我们需要关于片段导航问题的帮助

我有Acitvity1,在其中动态添加fragmentA,fragmentA有一个按钮,命名为next,如果我们按下next button,fragmentB就午餐了。现在,当按下设备硬件返回按钮,然后调用onCreateView的fragmentA。

在这里,我的问题是,我们如何通过阻止fragmentA调用或来恢复/召回、onResume、state、或中的?

请帮助我的朋友,真的有麻烦了,提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2014-08-07 07:57:59

我认为您使用了FragmentTransaction的替换方法,但是您应该使用它的add。请参阅文档

请张贴一些您的源代码,以便有一个更清晰的视图。

票数 1
EN

Stack Overflow用户

发布于 2014-08-07 07:54:36

您可以使用backstackentry引用

代码语言:javascript
运行
复制
@Override
public void onBackPressed() {
    loadPreviousFragment();
}

代码语言:javascript
运行
复制
private boolean loadPreviousFragment() {
    FragmentManager fm = getSupportFragmentManager();
    for(int i = 0; i < fm.getBackStackEntryCount(); i++){
        if(fm.getBackStackEntryAt(i).getName().equals(FRAGMENT_A )){
            fm.getFragments().get(i).onResume();
            return true;
        }

        if(fm.getBackStackEntryAt(i).getName().equals(FRAGMENT_B )){
            fm.getFragments().get(i).onResume();
            return true;
        }
    }
}

当添加片段时,只需设置backstak名称

( fragmentTransaction.addToBackStack(FRAGMENT_A );

票数 0
EN

Stack Overflow用户

发布于 2014-08-07 08:01:59

据我所知,你称之为片段替换。您有3种变体:

  1. 调用fragmentTransaction.add()代替关闭替换--您将在同一时间在屏幕上看到2个片段,首先可能是不可见的。当您回到以前的片段时,不会有onCreateView调用。
  2. 存储对第一个片段的引用在fragmentTransaction的add方法中使用它
  3. 在屏幕上添加addToBackStack时调用fragmentB
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25176994

复制
相关文章

相似问题

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