当我使用ShowViewModel
导航到某个活动时,它很好地动画了。但是当目标是Fragment
时,它不会。有没有办法添加这个?
我在原生Android中看到你会将它添加到FragmentTransaction
,但是因为MvvmCross
处理了我们,我认为还有另一个地方可以处理它。
答案 0 :(得分:2)
处理片段事务的代码是实现Show
的活动的IMvxFragmentHost
方法,该方法负责处理正在显示的特定片段。要更改动画,您需要在显示片段时使用SetCustomAnimations
方法。
我通常做的是创建一个BaseFragmentView
类,该类具有作为属性公开的动画。显示片段时,我可以简单地使用这些属性:
var transaction = SupportFragmentManager
.BeginTransaction()
.SetCustomAnimations(fragmentView.EnterAnimation, fragmentView.ExitAnimation)
.Replace(targetId, fragmentView)
.Commit();
使用MvxChachingFragmentView
时,您只需覆盖OnBeforeFragmentChanging
方法,然后使用第二个参数添加所需的自定义动画。
您可以通过查看MvxCachingFragmentView
课程了解如何实施IMvxFragmentHost
界面,如果您不知道如何使用MvvmCross 4中的新片段,请参阅{{3 }}