gpt4 book ai didi

xamarin.ios - 在 MvvmCross monodroid Activity 中插入一个 Monogame View

转载 作者:行者123 更新时间:2023-12-02 05:25:07 24 4
gpt4 key购买 nike

我正在尝试从我的 MvvmCross monodroid Activity View 在 RelativeLayout 中构建一个 Monogame View 。

Android Activity 继承自 Microsoft.Xna.Framework.AndroidGameActivity,能够在 RelativeLayout 中运行 Monogame(有效)。

我的 MvvmCross Activity 继承自 MvxBindingActivityView(working)。

因此,我需要一种方法来运行游戏并在同一事件中绑定(bind)一些数据。

预先感谢您的帮助。

最佳答案

简单地说,您可以通过继承一些接口(interface)然后剪切和粘贴少量代码来将任何 Activity 转换为 MvxActivity,这些代码执行 ViewModel 的基本加载和分配。

例如查看#RegionIMvxAndroidView<TViewModel>添加到制作 MvxActivityView.cs来自正常 Activity .

例如它与 Google 的 MapActivity 等专用 Activity 所使用的区域和界面相同。进入MvxMapActivityView.cs

在这个级别,Activity/View 有一个 ViewModel它可以在 C# 代码中使用,但没有聪明的 xml 膨胀 - 它没有聪明的 Binding支持。

可以在这个级别编写代码 - 我发布了没有绑定(bind)的应用程序 - 但许多用户也更喜欢添加 DataBinding...


要添加此 DataBinding 支持,您需要添加更多代码以提供 BindingInflate、绑定(bind)存储、绑定(bind)处置等。

例如原始 MvxActivityView使用 IMvxBindingActivity 扩展界面和#region,如:MvxBindingActivityView.cs

例如MvxMapActivityView使用相同的区域和接口(interface)进行扩展:MvxBindingMapActivityView.cs


所以要扩展您的自定义 AndroidGameActivity :

  1. 继承自 AndroidGameActivity得到ViewModelOwningGameActivity<T>并剪切并粘贴 IMvxAndroidView<TViewModel>接口(interface)和#region来自 MvxActivityView<T>提供 ViewModel 方法、字段和属性。

然后假设你想要绑定(bind):

  1. 继承自 ViewModelOwningGameActivity<T>得到BindingGameActivity<T>并剪切并粘贴 IMvxBindingActivity#region来自 MvxBindingActivityView<T>获取绑定(bind)方法

对于专业事件,您可能想要添加更多 - 例如您可以为 MapActivity 添加一些自定义辅助方法来绘制点和线,或者为 GameActivity 添加一些自定义辅助方法以执行任何游戏...但这取决于具体的实现。


对于调整事件所需的代码剪切和粘贴感到抱歉 - 我已尽量减少这种情况。然而,到目前为止,编写 Mvx 是我真正想要在 C# 中使用多重继承或混合的一次

关于xamarin.ios - 在 MvvmCross monodroid Activity 中插入一个 Monogame View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13201174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com