2016-09-21 75 views
0

我有两个Activities和每个有3-4个Fragments,每个替换另一个。按回最后一个片段显示空白活动前不久前活动

Activity1Fragment2启动第二个活动,Activity2Fragment1启动并onBackPressed关闭Activity2并回到Activity1为正常。

当我启动Activity2Activity1Fragment3不过,我想补充Fragment2到第二个活动,这是通过锥在onCreate方法来完成。

但是,当后退按钮被按下时,片段消失一秒钟,屏幕上留下空白,然后关闭Activity2,导致视觉干扰。

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

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

回答

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"