在定位更改中再次重复Android片段动画
在我的活动中,我通过使用下面的代码添加了片段。
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.right_to_left_in, R.anim.right_to_left_exit,R.anim.left_to_right_in,R.anim.left_to_right_exit);
DetailsFragment newFragment = DetailsFragment.newInstance();
ft.replace(R.id.details_fragment_container, newFragment, "detailFragment");
ft.commit();
片段正在进入,退出,正确地弹出动画。 但是,当我定位设备时,片段管理器正试图添加具有相同动画的片段。 这似乎很奇怪。 我不希望用户定位设备时的动画。
我不想在清单中添加onConfigChanges='orientation'
,因为我想更改方向上片段的布局设计。
我可以避免这种情况的唯一方法是不保留片段实例。 在你的DetailsFragment
的onCreate
方法中,使用setRetainInstance(false);
在方向改变的情况下,Android会将现有片段自动重新附加到活动中。 所以你不必手动完成。 您可以在null的activity的onCreate
方法中检查savedInstanceState变量,并仅在动画为null的情况下用动画替换片段:
if (savedInstanceState == null) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.right_to_left_in, R.anim.right_to_left_exit,R.anim.left_to_right_in,R.anim.left_to_right_exit);
DetailsFragment newFragment = DetailsFragment.newInstance();
ft.replace(R.id.details_fragment_container, newFragment, "detailFragment");
ft.commit();
}
链接地址: http://www.djcxy.com/p/21169.html
上一篇: Android Fragment Animation is repeated again on Orientation Change
下一篇: Saving columns' widths in result grid in MySQL Workbench