处理MvxListView中的可变高度项

时间:2014-11-10 12:07:03

标签: android-listview mvvmcross

我正在使用具有可变高度的项目的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继承并强制重新测量每个子视图?

由于

0 个答案:

没有答案