我尝试MvxListView
与MvxAppCompatActivity
一起使用,但我总是得到:
InflateException:错误导致类Mvx.MvxListView ClassNotFoundException:找不到类" Mvx.MvxListView
这是我的axml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.viniciusmaia.missaocarona"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
layout="@layout/Toolbar" />
<Mvx.MvxListView
android:id="@+id/teste"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
app:MvxBind="ItemsSource Usuarios;ItemClick UsuarioClickCommand"
app:MvxItemTemplate="@layout/usuarioitem"/>
</LinearLayout>
这是我的活动:
[Activity]
public class UsuarioActivity : MvxAppCompatActivity<UsuarioViewModel>
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.UsuarioView);
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
toolbar.Title = UsuarioMensagens.TITULO_Usuario;
//SetSupportActionBar(toolbar);
Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
ViewModel.Carregamento = new Carregamento(this);
ViewModel.PreenchePagina();
}
}
我尝试使用Mvx.MvxListview
和MvxListView
这样的帖子Binary XML file line #1: Error inflating class Mvx.MvxListView,但对我来说没有任何作用。
任何人都可以帮助我吗?
答案 0 :(得分:4)
form.errors.clear()
是一个在MvvmCross中绑定的自定义Mvx.MvxListView
注册的快捷方式。这意味着,如果您的Inflater
课程没有说明在哪里查找Setup
,则快捷方式无效。
在这种情况下,我发现您正在使用Mvx
,它来自其中一个支持包。您从那里继承了一个单独的安装程序,它会为您处理大量注册。它还会设置一些色彩感知的视图。
因此,在您的设置中,您应该继承MvxAppCompatSetup
:
MvxAppCompatActivity
这应该足以找到public class Setup : MvxAppCompatSetup
{
}
。如果没有,您可以尝试通过覆盖设置中的Mvx.MvxListView
来添加更多缩写:
ViewNamespaceAbbreviations
这会使MvvmCross在您的axml文件中使用public class Setup : MvxAppCompatSetup
{
...
protected override IDictionary<string, string> ViewNamespaceAbbreviations new Dictionary<string, string>
{
{"Mvx", "MvvmCross.Binding.Droid.Views"},
{"MyViews", "My.Custom.Views"},
// add more abbreviations here
};
}
作为前缀时在MvvmCross.Binding.Droid.Views
中查找视图。
“Mvx”=&gt; “MvvmCross.Binding.Droid.Views”是默认值,可以与Mvx
中的任何BindingInflater
一起使用,也可以与MvxAppCompatSetup
一起使用。
答案 1 :(得分:0)
尝试在您的axml文件中写Mvx.MvxListView
而不是MvxListView
。
另外,您的xmlns:app="http://schemas.android.com/apk/res/com.viniciusmaia.missaocarona"
实际上应该是xmlns:app="http://schemas.android.com/apk/res-auto"
。
要仔细检查的另一件事是确保您的Setup类派生自MvxAndroidSetup
答案 2 :(得分:0)
尝试在LinearLayout上替换此行
xmlns:app="http://schemas.android.com/apk/res/com.viniciusmaia.missaocarona"
用这个:
xmlns:app="http://schemas.android.com/apk/res-auto"