2015-05-06 2 views
0

Я использую MvvmCross уже более 2 лет, но эта последняя проблема с Android была в тупике. Мне явно чего-то не хватает.MvxBind: Ошибка: Тип поиска не найден - BindableListView

Я обновил свой Xamarin и MonoDevelop, используя последнюю версию. Я использовал Mvx hot tuna 3.5 и пытался обновиться до 3.5.1 без какого-либо другого результата. В принципе, каждый вид, который использует привязки, с трудом терпит неудачу с MvxBind: Ошибка в окне вывода, представления просто заканчиваются пустым.

Я также изменил класс установки, пытаясь предоставить сборки вручную, а также пространства имен. Мне нужно решить это довольно срочно, Стюарт, пожалуйста, посоветуйте.

MvxBind:Error:100,93 View type not found - md52d382d08e2b5b5a41f8bed5ba30f5cc4.BindableListView 

Примером этого является привязка в моем представлении конфигурации.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/style_background"> 
    <Monovage.BindableListView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:cacheColorHint="#00000000" 
     local:MvxBind="ItemsSource Thresholds" 
     local:MvxItemTemplate="@layout/listitem_usagethreshold" 
     android:layout_marginTop="0dp" /> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_centerHorizontal="true" 
     android:orientation="vertical" 
     android:background="@drawable/style_background"> 
     <ProgressBar 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="false" 
      android:layout_centerInParent="true" 
      local:MvxBind="Visibility IsBusy, Converter=Visibility" /> 
    </RelativeLayout> 
</LinearLayout> 

Bindable Просмотр списка вид списка, который наследует от общественного класса BindableListView MvxListView

: MvxListView

+1

проблема заключается в нарушении изменений в последних выпусках Xamarin - используйте '[Register (your.namespace.Name)]' в своих представлениях Android, чтобы они использовали читаемые Java-имена, которые соответствуют вашим пространствам имен C#, а не этим глупым хэшам MD5. В примечаниях к выпуску Xam есть еще кое-что - или попросите поддержку Xam ... – Stuart

ответ

7

я просто занималась этим вчера, используя BindingFlowLayout. Я разрешил MvxBind: Ошибка при настройке префикс в файле макета ...

<BindingFlowLayout 
      android:id="@+id/AllShowsFlow" 
      android:orientation="horizontal" 
      local:MvxItemTemplate="@layout/appmoviesgriditem" 
      local:MvxBind="ItemsSource TVShows" 
      android:minWidth="25px" 
      android:minHeight="25px" 
      android:layout_marginLeft="20dp" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

и добавление настройки сборок.

protected override IList<Assembly> AndroidViewAssemblies 
    { 
     get 
     { 
      var assemblies = base.AndroidViewAssemblies; 
      assemblies.Add(typeof(MvxExtensions.BindingFlowLayout).Assembly); 
      assemblies.Add(typeof(MvxExtensions.FlowLayout).Assembly); 
      return assemblies; 
     } 
    } 

На основании ответа Стюарта здесь:

MvxBind:Error: View type not found - mvvmemiextensions.EmiDatePicker

Однако эта ошибка была доброкачественной в мое приложение, и оно никогда не возникало никаких проблем.

5

Я была такая же проблема, но с BindableExpandableListView, я получил ошибку

[MvxBind] 237.25 View type not found - md58cb9ccb4af6afc62c0aa8757d7b275d0.BindableExpandableListView 

Я имел это в файле макета

<DeapExtensions.Binding.Droid.Views.BindableExpandableListView 
     android:id="@+id/openExpandableListView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:drawSelectorOnTop="true" 
     android:stackFromBottom="false" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:layout_marginBottom="15dp" 
     local:MvxBind="ItemsSource WrappedCategories" 
     local:MvxItemTemplate="@layout/rowopentask" 
     local:GroupItemTemplate="@layout/rowcategory" /> 

я просто удалил все префикс, как так

<BindableExpandableListView 
     android:id="@+id/openExpandableListView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:drawSelectorOnTop="true" 
     android:stackFromBottom="false" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="15dp" 
     android:layout_marginBottom="15dp" 
     local:MvxBind="ItemsSource WrappedCategories" 
     local:MvxItemTemplate="@layout/rowopentask" 
     local:GroupItemTemplate="@layout/rowcategory" /> 

и что, похоже, сработало.

+0

Странно, но он также решил проблему для меня – foxanna

0

Исправления для MvvmCross не предполагает 1: отображение 1 из C# для имен типов Java, следующий фрагмент кода может быть использована для получения базового имени типа Java от типа C#:

string javaClassName = Java.Lang.Class.FromType(typeof(MyActivity));