添加片段的事务转换

时间:2016-02-16 11:05:52

标签: android xamarin xamarin.android mvvmcross

当我使用ShowViewModel导航到某个活动时,它很好地动画了。但是当目标是Fragment时,它不会。有没有办法添加这个?

我在原生Android中看到你会将它添加到FragmentTransaction,但是因为MvvmCross处理了我们,我认为还有另一个地方可以处理它。

1 个答案:

答案 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 }}