首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在最后一个片段上按back将显示空白活动,不久之后将转到上一个活动

在最后一个片段上按back将显示空白活动,不久之后将转到上一个活动
EN

Stack Overflow用户
提问于 2016-09-22 03:20:59
回答 1查看 994关注 0票数 0

我有两个Activities,每个都有3-4个Fragments,每个替换另一个。

Activity1Fragment2启动第二个活动Activity2时,Fragment1将启动,onBackPressed将关闭Activity2并照常返回Activity1

但是,当我从Activity1启动Activity2时,我想将Fragment2添加到第二个活动中,这是通过onCreate方法中的cone完成的。

但是,当按下back按钮时,片断会瞬间消失,在关闭Activity2之后,屏幕上会留下空白的Activity2,从而导致视觉上的毛刺。

我可以做什么来关闭Activity2的确切时刻(至少在相同的视觉时刻),当Fragment2正在被关闭的后退按钮?

谢谢。

附注:不将片段添加到backStack似乎会立即关闭活动,这就是在第一种情况(预期行为)中发生的情况,但是当将片段添加到backStack (在第二种情况下需要正确操作)时会产生毛刺。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-05 02:39:45

好的,在与backStack斗争了很多天之后,我决定跳过它,因为它似乎不能正常工作,或者我不理解它。

我这样做的方式是在我的活动的onBackPressed上,我检查哪个片段正在显示,如果它应该是最后一个(多个是“最后一个”),我只需要finish()该活动。

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

    MyFragment myFragment = (MyFragment)fragmentManager.findFragmentByTag("MyFragment");
    if (myFragment != null && myFragment .isVisible()) {
        //if myFragment is visible when the back button is pressed...
        finish();
    } else {
        super.onBackPressed();
    }
}

不要忘记在FragmentManager transaciton中为您的片段命名。在我的例子中,它是"MyFragment"

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

https://stackoverflow.com/questions/39624908

复制
相关文章

相似问题

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