У меня проблемы с использованием или понимания того, как извлечение FragmentTransaction из заднего стека обрабатывает пользовательские {{1} } анимации. В частности, я ожидаю, что он вызовет анимацию "выхода", но это не похоже.
У меня есть простой метод обработки транзакции фрагмента (FragmentTransaction), где я добавляю фрагмент и применяю пользовательский переход , чтобы он постепенно появлялся / затухал. Я также добавляю это в задний стек, чтобы пользователь мог отменить эту транзакцию с помощью кнопки возврата , по сути переходя в состояние до добавления фрагмента .
protected void changeFragment() {
FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
ft.add(R.id.fragment_container, new TestFragment());
ft.addToBackStack(null);
ft.commit();
}
Движение вперед отлично работает, но когда пользователь нажимает кнопку "Назад" , анимация перехода не меняется. Я ожидал, что , когда фрагмент будет удален, он будет использовать анимацию постепенного исчезновения . Вместо этого кажется, что он выскакивает (без анимации), а затем контейнер постепенно исчезает. Я не уверен, что это именно то, что происходит , но фрагмент определенно не исчезает .
Мое приложение использует библиотеку совместимости для добавления поддержки фрагментов , но я предполагаю, что это применимо и к Honeycomb (android-11). Кто-нибудь знает, делаю ли я здесь что-то не так или просто жду слишком многого? В идеале я хотел бы анимировать фрагменты аналогично тому, как это делает Gmail (на Xoom) в отношении движения вперед, щелкнув сообщение, а затем назад, используя назад кнопка. Желательно не переопределять функциональность кнопки "Назад" и следить за своим собственным состоянием фрагмента, поскольку у меня может быть несколько "транзакций", от которых я хотел бы отказаться, и я {{1} } не любитель изобретать колеса заново.
Также спрашивается в группе разработчиков Android: http://groups.google.com/group/android-developers/browse_thread/thread/1136a3a70fa0b6e9