【问题标题】:DataBindings are broken after update to MvvmCross 4.0 when using AppCompatActivity使用 AppCompatActivity 更新到 MvvmCross 4.0 后,DataBindings 被破坏
【发布时间】:2016-02-27 02:14:03
【问题描述】:

我在我的 MvvmCross 3.5.1 应用程序中使用 android 工具栏,但是一旦我将它更新到 MvvmCross 4.0 数据绑定就被破坏了。只要没有基本的 appcompat 活动,我就必须实现自己的:

MvxActionBarEventSourceActivity : AppCompatActivity , IMvxEventSourceActivity
{
 ...
}

然后是基础可绑定 mvx 活动:

MvxActionBarActivity : MvxActionBarEventSourceActivity, IMvxAndroidView
{
 ...
}

应用程序启动得很好,我可以看到我的工具栏,但绑定只是“静默”并且不起作用。 MvvmCross 3.5 的实现工作相同。

您可以在此处找到完整示例: https://dl.dropboxusercontent.com/u/19503836/MvvmCross4_Toolbar_Bindings.zip

请指教。

【问题讨论】:

    标签: data-binding xamarin xamarin.android mvvmcross android-appcompat


    【解决方案1】:

    您需要覆盖OnCreateViewAttachBaseContext 并使用MvxAppCompatActivityHelper 来支持绑定:https://github.com/MvvmCross/MvvmCross-AndroidSupport/blob/master/MvvmCross.Droid.Support.V7.AppCompat/MvxAppCompatActivity.cs#L78

        public override View OnCreateView(View parent, string name, Context context, IAttributeSet attrs)
        {
            var view = MvxAppCompatActivityHelper.OnCreateView(parent, name, context, attrs);
            return view ?? base.OnCreateView(parent, name, context, attrs);
        }
    
        protected override void AttachBaseContext(Context @base)
        {
            base.AttachBaseContext(MvxContextWrapper.Wrap(@base, this));
        }
    

    也有一个示例可用于实现Toolbar 而不是Actionbarhttps://github.com/MvvmCross/MvvmCross-AndroidSupport/tree/master/Samples

    【讨论】:

    • 就像一个魅力!我确实使用了 mvvmcross 支持 nuget 包中的 MvxAppCompatActivity 并且效果很好。谢谢!
    • 死 mvvmcross 链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 2018-10-17
    • 2014-08-15
    相关资源
    最近更新 更多