Intereting Posts
Android 5.0: как изменить цвет названия последних приложений? Android-процесс аудио для гитарного тюнера Почему приложение для Android говорит «Не удается воспроизвести видео» после воспроизведения? Измерение высоты текста на Canvas (Android) Менеджер местоположения ProxmityAlert всегда говорит о вводе Разрешение Android запрещено при чтении / proc / self / exe из основного потока Android установлен в одном действии, а затем появляется кнопка в другой активности Android 4.2.2 трансляция входящих звонков Есть ли хороший API OCR для iPhone и / или телефонов Android? Продолжить службу, даже если приложение очищено от последнего приложения Как отобразить представление списка в диалоговом окне Android Alert? Android NDK – создание TessTwo (вилка Tesseract Tools для Android) – ndk-build не работает Ядро выбора EditText Как отключить салфетки в представлении пейджера в android Обработчики, инициализированные с помощью Looper.getMainLooper (), не отвечают на обратные вызовы сообщений

Анимация 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(); }