2016-02-27 70 views
5

我在我的MvvmCross 3.5.1應用程序中使用了Android工具欄,但是一旦我將其更新到MvvmCross 4.0數據綁定已損壞。只要沒有基礎程序兼容性活動我要實現我自己的:使用AppCompatActivity更新到MvvmCross 4.0後DataBindings被破壞使用AppCompatActivity

MvxActionBarEventSourceActivity : AppCompatActivity , IMvxEventSourceActivity 
{ 
... 
} 

然後基地綁定MVX活動:

MvxActionBarActivity : MvxActionBarEventSourceActivity, IMvxAndroidView 
{ 
... 
} 

應用啓動後就好了,我可以看到我的工具欄,但綁定只是「沉默」而不工作。與MvvmCross 3.5相同的實現工程。

你可以找到完整的示例在這裏: https://dl.dropboxusercontent.com/u/19503836/MvvmCross4_Toolbar_Bindings.zip

請指教。

回答

4

你需要重寫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代替Actionbar也可用一個例子:https://github.com/MvvmCross/MvvmCross-AndroidSupport/tree/master/Samples

+0

的作品就像一個魅力!我確實使用了mvvmcross支持nuget軟件包中的MvxAppCompatActivity,它工作得很好。謝謝! –

+0

死mvvmcross鏈接。 –