情况是这样的...我单击一个加载下一个片段的按钮。当动画仍在播放时,我点击了最近使用的应用程序按钮。显示最近的应用程序屏幕后,我返回我的应用程序。
然后我看到两个片段相互重叠。仿佛Android忘记删除先前的片段。 我单击返回以删除所有片段,直到到达此FragmentActivity中加载的第一个片段。我记录了从FragmentManager获得的所有片段,并且只显示了一个。但是我仍然看到两个片段一个接一个地绘制。应该删除的一个不响应触摸事件,而另一个则应响应。
这是Android错误还是我的错?有什么办法可以解决这个问题或防止它发生?
并非每次都发生。这就是我加载片段的方式
public void loadNewFragment(AnimFragment newFragment, boolean addToSTack, boolean animate, String tag) {
if (newFragment != null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fragment_enter_from_right, R.anim.fragment_exit_to_left, R.anim.fragment_enter_from_left, R.anim.fragment_exit_to_right);
transaction.replace(R.id.fragment_container, newFragment, tag);
if (addToSTack) {
transaction.addToBackStack(tag);
}
int transactionId = transaction.commit();
newFragment.setTransactionId(transactionId);
}
}
然后按
将它们从背面取下 getSupportFragmentManager().popBackStackImmediate();
答案 0 :(得分:0)
我认为“下面”的片段是onPause()
状态,它仍然有效且可见。
尝试在前片段的根布局上使用白色背景,以避免显示以下片段。此外,前片段的根布局大小(宽度和高度)应为match_parent。
访问此网站以了解Fragment
的生命周期。