在返回上一个活动

时间:2016-09-21 19:20:59

标签: android android-fragments android-activity

我有两个Activities,每个Fragments有3-4个Activity1,每个都替换另一个。{/ p>

Fragment2Activity2启动第二项活动时,Fragment1onBackPressed已启动且Activity2关闭Activity1并返回正常Activity2

当我从Activity1Fragment3发起Fragment2时,我想将onCreate添加到第二个活动,这是通过{{ 1}}方法。

然而,当按下后退按钮时,片段会瞬间消失,屏幕上会显示Activity2空白,然后Activity2关闭,从而导致视觉故障。

我可以做些什么来关闭Activity2与后退按钮关闭Fragment2的确切时刻(至少在同一视觉时刻)?

谢谢。

PS:没有将片段添加到backStack似乎立即关闭活动,这是第一种情况(预期行为)中发生的事情,但是当将片段添加到backStack时(根据需要在第二种情况下正确操作)产生故障。

1 个答案:

答案 0 :(得分:0)

好的,在与backStack打了好几天之后,我决定跳过它,因为它似乎没有正常工作,或者我不理解它。

我这样做的方法是在我的活动中onBackPressed我要检查哪个片段正在显示,以及它是否应该是最后一个片段(多个片段是"最后一个")我只是finish()活动。

@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"

相关问题