У меня проблемы с использованием или пониманием того, как выскочить
FragmentTransactions от заднего стека обрабатывают пользовательские
анимации. Конкретно, я ожидаю, что это вызовет "out" анимацию, но
это не кажется
У меня есть простой метод для обработки транзакции фрагмента
(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) делает в отношении
двигаться вперед, нажав на сообщение, а затем назад, используя
кнопка. Желательно, чтобы не пришлось переопределить кнопку назад
функциональность и идти в ногу со своим собственным состоянием фрагмента, так как я мог
есть несколько «транзакций», от которых я бы хотел отказаться, и я
не любитель изобретать колеса.
Также спросили в группе разработчиков Android: http://groups.google.com/group/android-developers/browse_thread/thread/1136a3a70fa0b6e9