插入MvvmCross MonoDroid的活动内的Monogame视图(Insert a Mono

2019-07-03 13:07发布

我想从我的MvvmCross MonoDroid的活动视图建立的RelativeLayout内Monogame视图。

一个Android活动从Microsoft.Xna.Framework.AndroidGameActivity继承才能够运行的RelativeLayout内Monogame(工作)。

我MvvmCross活动从MvxBindingActivityView(工作)继承。

所以,我需要一种方法来运行游戏,并在同一活动中结合一些DATAS。

在此先感谢您的帮助。

Answer 1:

宽泛地说,你可以通过继承某些接口,然后通过剪切和粘贴少量的代码确实视图模型的基本负载和分配转换的任何活动到MvxActivity。

例如见#RegionIMvxAndroidView<TViewModel>加入使MvxActivityView.cs从正常Activity

例如,它是用于适应一个专门的活动像谷歌的同一区域和接口MapActivity到MvxMapActivityView.cs

在这个水平上,在活动/查看具有ViewModel可以在C#代码中使用,但一直没有巧妙的xml通货膨胀-它没有巧妙Binding的支持。

代码可以在这个水平上写 - 我运应用,而无需绑定 - 但很多用户喜欢添加数据绑定的太...


要添加此数据绑定的支持,你需要添加一点代码提供BindingInflate,绑定的贮存,处置的绑定等。

例如原料MvxActivityView使用扩展IMvxBindingActivity接口和象#地区: MvxBindingActivityView.cs

例如MvxMapActivityView使用相同的区域和接口扩展: MvxBindingMapActivityView.cs


因此,要延长您的自定义AndroidGameActivity

  1. 从继承AndroidGameActivity得到ViewModelOwningGameActivity<T>和剪切并粘贴IMvxAndroidView<TViewModel>接口和#regionMvxActivityView<T>以提供视图模型方法,字段和属性。

然后,假设你要绑定:

  1. 从继承ViewModelOwningGameActivity<T>得到BindingGameActivity<T>和剪切并粘贴IMvxBindingActivity#regionMvxBindingActivityView<T>得到的结合方法

对于专业活动,你可能要添加更多的-例如,你可能会添加一些自定义的辅助方法为MapActivity绘制点和线,或GameActivity做任何做游戏 ......但是这是由个别的实现。


很抱歉的剪裁和适应活动所需的代码粘贴 - 我试图保持这个到最低限度。 然而,写MVX是一次到目前为止,我已经真的很想多继承或混入在C#



文章来源: Insert a Monogame view inside MvvmCross monodroid Activity