在Orientation Change上再次重复Android Fragment Animation

Pon*_*rai 8 android android-fragments

在我的活动中,我使用以下代码添加了片段.

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();
Run Code Online (Sandbox Code Playgroud)

片段正在进入,退出,正确播放动画.但是当我定位设备时,片段管理器正在尝试使用相同的动画添加片段.这看起来很奇怪.当用户定位设备时,我不想要动画.

我不想添加onConfigChanges='orientation'清单,因为我想在方向上更改片段的布局设计.

mak*_*tar 0

如果方向发生变化,Android 会自动将现有片段重新附加到 Activity。所以你不必手动完成。您可以检查活动方法中的savedInstanceState变量onCreate是否为空,并仅在它为空时才用动画替换片段:

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();
}
Run Code Online (Sandbox Code Playgroud)