2016-02-16 2 views
0

Когда я перехожу к мероприятию с использованием ShowViewModel, он красиво анимирован. Но когда цель равна Fragment, это не будет. Есть ли способ добавить это?Добавить переход транзакции для фрагментов

Я видел, что в родном андроиде вы бы добавили его в FragmentTransaction, но с MvvmCross Ручки для нас, я полагаю, есть другое место для обработки этого.

ответ

2

Код, который обрабатывает транзакцию фрагмента, представляет собой метод Show из действия, реализующего IMvxFragmentHost, который отвечает за обработку определенного фрагмента. Чтобы изменить анимацию, вам необходимо использовать метод SetCustomAnimations при отображении фрагмента.

Что я обычно делаю, это создать класс BaseFragmentView, который включает и оставляет анимацию открытой как свойства. При отображении фрагментов, можно просто использовать эти свойства, как это:

var transaction = SupportFragmentManager 
        .BeginTransaction() 
        .SetCustomAnimations(fragmentView.EnterAnimation, fragmentView.ExitAnimation) 
        .Replace(targetId, fragmentView) 
        .Commit(); 

При использовании MvxChachingFragmentView, вы можете просто переопределить метод OnBeforeFragmentChanging и использовать второй параметр, чтобы добавить пользовательские анимации вы хотите.

Вы можете увидеть, как реализовать интерфейс IMvxFragmentHost путем проверки MvxCachingFragmentView класс и, если вы не знаете, как использовать новые фрагменты из MvvmCross 4 см this answer

+0

Но это не означало бы, что я потерять возможность навигации через ShowViewModel в виртуальной машине до фрагмента? – NPadrutt

+0

Отрицательный. Под капотом, когда вы вызываете ShowViewModel, он в конечном итоге получает вызов Presenter, который в случае отображения фрагментов получает вызов метода Show в зарегистрированном IMvxFragmentHost. Это то, как он уже обрабатывается, вы просто немного измените его в соответствии со своими потребностями :) –

+0

Но я не могу использовать MvxCachingFragmentView? Насколько я могу судить, я не могу просто переопределить ShowMethod и добавить свою анимацию перехода. – NPadrutt

Смежные вопросы