Xamarin 使用MvvmCross Droid自定义动画

Xamarin 使用MvvmCross Droid自定义动画,xamarin,mvvmcross,xamarin.droid,Xamarin,Mvvmcross,Xamarin.droid,使用MvvmCross,如果我想要一个按钮来打开新屏幕,我会连接命令处理程序并使用ShowViewModel,如下所示: ShowViewModel<InfoViewModel>(); OverridePendingTransition(Resource.Animation.push_up_in, Resource.Animation.push_up_out); 因此,基本上我想要一种从Droid项目连接到MvvmCross活动创建的方法。通过从U

使用MvvmCross,如果我想要一个按钮来打开新屏幕,我会连接命令处理程序并使用ShowViewModel,如下所示:

        ShowViewModel<InfoViewModel>();
        OverridePendingTransition(Resource.Animation.push_up_in, Resource.Animation.push_up_out);

因此,基本上我想要一种从Droid项目连接到MvvmCross活动创建的方法。

通过从UI中的MVXAActivity调用命令来解决

        var infoBtn = FindViewById<RelativeLayout>(Resource.Id.infobtn);
        infoBtn.Click += delegate(object sender, EventArgs args)
            {
                ((MainMenuViewModel)ViewModel).InfoCommand.Execute(null);
                OverridePendingTransition(Resource.Animation.push_up_in, Resource.Animation.push_up_out);                 
            };
var infoBtn=findviewbyd(Resource.Id.infoBtn);
infoBtn.Click+=委托(对象发送者、事件参数)
{
((MainMenuViewModel)ViewModel).InfoCommand.Execute(null);
重写结束转换(Resource.Animation.push\u-up\u-in,Resource.Animation.push\u-up\u-out);
};

终于成功了

在安装程序中,覆盖CreateViewPresenter()

并创建了CustomPresenter类来制作动画:

public class CustomPresenter : MvxAndroidViewPresenter
{

    protected override void Show(Intent intent)
    {
        Activity.StartActivity(intent);
        Activity.OverridePendingTransition(Resource.Animator.slide_in_left, Resource.Animator.slide_out_left);
    }
}

如果您希望在“正确”的位置执行此操作,那么最好在自定义演示者中执行此操作-请参阅来自“谢谢”的链接!我正在调查。你在“正确”的地方做了吗?查看提供的@Stuart链接,但找不到任何相关内容。
public class CustomPresenter : MvxAndroidViewPresenter
{

    protected override void Show(Intent intent)
    {
        Activity.StartActivity(intent);
        Activity.OverridePendingTransition(Resource.Animator.slide_in_left, Resource.Animator.slide_out_left);
    }
}