我正在使用具有可变高度的项目的MvxListView。 ItemTemplate依赖于数据项,因此我们使用MvxAdapter并从GetBindableView返回相关的视图。
在第一次加载View时ListView是正确的高度,但如果我重建底层的ItemSource,ListView的高度太短意味着我需要滚动才能看到最后一项。
即使ItemSource中的Items相同,也会发生这种情况。
如果我确保所有子视图的高度相同,则没有问题。
ListView布局是
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- Some Text Views-->
</RelativeLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/pale_blue"
android:paddingLeft="20dp"
android:paddingRight="20dp">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/dark_grey"
android:prompt="@string/encounter_location_prompt"
android:textSize="@dimen/text_size_medium" />
</LinearLayout>
<Mvx.MvxListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/lstEntries"
local:MvxBind="ItemsSource Entries"
android:divider="@null"
android:dividerHeight="0dp"
android:layout_marginBottom="0.0dp" />
</LinearLayout>
未正确测量的其中一个项目视图的布局是
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="10"
android:background="@drawable/customborder2">
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left|center_vertical"
android:textSize="@dimen/text_size_large"
android:paddingRight="10dp"
android:paddingTop="5dp"
local:MvxBind="Text Description"
android:text="term"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left|center_vertical"
android:textSize="@dimen/text_size_large"
android:paddingTop="5dp"
local:MvxBind="Text Instructions"
android:text="Instructions" />
</LinearLayout>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="right|center_vertical"
android:textSize="@dimen/text_size_large"
android:paddingTop="5dp"
android:text="SomeText"
android:layout_weight="4"
android:textColor="@color/deep_blue" />
</LinearLayout>
我理解这是底层Android ListView的一个问题,但我想知道是否有一个可接受的MVVMCross解决方案。我是否从MvxListView继承并强制重新测量每个子视图?
由于