我在我的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
请告知。
答案 0 :(得分:5)
您需要覆盖OnCreateView
和AttachBaseContext
并使用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