Анимация Android Fragment снова повторяется в Orientation Change

В своей работе я добавил фрагмент, используя следующий код.

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(); 

Фрагмент входит, выходит, появляется с анимацией правильно. Но когда я ориентирую устройство, Fragment Manager пытается добавить фрагмент с теми же анимациями. Кажется очень странным. Я не хочу анимацию, когда пользователь ориентирует устройство.

Кто-нибудь столкнулся с этой проблемой?

Я не хочу добавлять onConfigChanges='orientation' в манифест, так как я хочу изменить дизайн макета фрагмента на ориентацию.

Пожалуйста, помогите мне.

Solutions Collecting From Web of "Анимация Android Fragment снова повторяется в Orientation Change"

Единственный способ избежать этого – не сохранить экземпляр фрагмента. В DetailsFragment onCreate метода setRetainInstance(false); используйте setRetainInstance(false);

Android в случае изменения ориентации автоматически добавляет существующий фрагмент к активности. Поэтому вам не нужно делать это вручную. Вы можете проверить переменную onCreate методе onCreate активности для null и заменить фрагмент анимацией только в том случае, если она onCreate 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(); }