mvvmcross を使用して Android 用のアプリを開発しています。
このアプリケーションでは、スピナーを含むリストが必要です。エミュレーターでアプリをテストすると問題ないように見えますが、スクロールするとすぐにメモリ不足になります。これは、gref が 2000 を超えるためです。実際のデバイスでは gref が高くなる可能性があることはわかっていますが、それでも何か間違ったことをしているに違いないと思います.
BindableList
<cirrious.mvvmcross.binding.android.views.MvxBindableListView
android:id="@+id/propertyHolder"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/obsBtLayout"
android:layout_above="@id/photoframe"
local:MvxBind="
{
'ItemsSource':{'Path':'PPHolders'},
'ItemClick':{'Path':'PropertyClickedCommand'}
}"
local:MvxItemTemplate="@layout/listitem_property"
/>
ListItem_Property.axml (削除済み)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res/AIPApp.UI.Droid"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/ListItemSelector"
android:descendantFocusability="beforeDescendants"
>
<cirrious.mvvmcross.binding.android.views.MvxBindableSpinner
android:layout_gravity="center_horizontal"
android:layout_width="200dip"
android:layout_height="wrap_content"
local:MvxDropDownItemTemplate="@layout/spinneritem_propdropdown"
local:MvxItemTemplate="@layout/spinneritem_prop"
local:MvxBind="
{
'ItemsSource':{'Path':'CodeTableValues'},
'SelectedItem':{'Path':'ObservedCodeTable'},
'Visibility':{'Path':'IsCodeTableValue','Converter':'Visibility'}
}"/>
</LinearLayout>
これは、スクロールするたびにスピナー アイテムを再構築する必要があるためですか? それがバインドされているリストは、リストのすべての項目で異なるためです。したがって、ある listitem では、スピナー リストは 6 項目の長さになり、別の listitem では 3 項目の長さになります。