我有两个Activities
,每个Fragments
有3-4个Activity1
,每个都替换另一个。{/ p>
当Fragment2
,Activity2
启动第二项活动时,Fragment1
,onBackPressed
已启动且Activity2
关闭Activity1
并返回正常Activity2
。
当我从Activity1
,Fragment3
发起Fragment2
时,我想将onCreate
添加到第二个活动,这是通过{{ 1}}方法。
然而,当按下后退按钮时,片段会瞬间消失,屏幕上会显示Activity2
空白,然后Activity2
关闭,从而导致视觉故障。
我可以做些什么来关闭Activity2
与后退按钮关闭Fragment2
的确切时刻(至少在同一视觉时刻)?
谢谢。
PS:没有将片段添加到backStack似乎立即关闭活动,这是第一种情况(预期行为)中发生的事情,但是当将片段添加到backStack时(根据需要在第二种情况下正确操作)产生故障。答案 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"
。