我有两个Activities,每个都有3-4个Fragments,每个替换另一个。
当Activity1、Fragment2启动第二个活动Activity2时,Fragment1将启动,onBackPressed将关闭Activity2并照常返回Activity1。
但是,当我从Activity1启动Activity2时,我想将Fragment2添加到第二个活动中,这是通过onCreate方法中的cone完成的。
但是,当按下back按钮时,片断会瞬间消失,在关闭Activity2之后,屏幕上会留下空白的Activity2,从而导致视觉上的毛刺。
我可以做什么来关闭Activity2的确切时刻(至少在相同的视觉时刻),当Fragment2正在被关闭的后退按钮?
谢谢。
附注:不将片段添加到backStack似乎会立即关闭活动,这就是在第一种情况(预期行为)中发生的情况,但是当将片段添加到backStack (在第二种情况下需要正确操作)时会产生毛刺。
发布于 2016-10-05 02:39:45
好的,在与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"。
https://stackoverflow.com/questions/39624908
复制相似问题