MvvmCross:如何使用自定义适配器以编程方式构造MvxListView?

use*_*286 4 android xamarin.android mvvmcross xamarin

我试图在Android上实现类似于iOS的分组列表视图.因此,我正在尝试编写自己的自定义MvxAdapter,它支持分组的节标题.从axml构造的默认MvxListView将创建默认的MvxAdapter.由于我需要提供自己的自定义MvxAdapter,我需要以编程方式创建MvxListview,以便我可以传入自己的适配器.我遇到的问题是在OnCreate我的android视图中我尝试构建自定义MvxAdapter时,Android绑定上下文为null

MvxAndroidBindingContextHelpers.Current()
Run Code Online (Sandbox Code Playgroud)

是否有使用v3 API自定义MvxAdapter以编程方式构造MvxListView的示例?

Stu*_*art 5

没有以编程方式创建MvxListView的示例 - 几乎所有Android UI控件都是在当前示例中的axml中创建的.

对于创建自定义适配器,有一些示例,包括:


或者,您可以继承CustomListViewfrom MvxListView,然后可以将自定义适配器作为构造函数的一部分传递.

有关创建和使用自定义视图的更多信息,请参阅http://slodge.blogspot.co.uk/2013/05/n18-android-custom-controls-n1-days-of.html


如果您确实想要将上下文推送到堆栈,您可以使用以下方法执行此操作:

  using (new MvxBindingContextStackRegistration<IMvxAndroidBindingContext>(**TheContext**))
  {
      // create your controls here
  }
Run Code Online (Sandbox Code Playgroud)

这正是xaml通胀期间发生的情况 - 请参阅:https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Droid/BindingContext/MvxAndroidBindingContext.cs#L47