0

我一直试图在我的布局中放置 3 个 MvxBindableListView 小部件,但没有成功。有没有办法做到这一点,以便每个 MvxBindableListView 完全显示而无需内部滚动,并且我的“页面”可以滚动。这是布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res/MyCurrentProject.Client.UI"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp">
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            local:MvxBind="{}" />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            local:MvxBind="{}" />
        <Mvx.MvxBindableListView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:clickable="false"
            local:MvxBind="{}" />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            local:MvxBind="{}" />
        <Mvx.MvxBindableListView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:clickable="false"
            local:MvxBind="{}" />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            local:MvxBind="{}" />
        <Mvx.MvxBindableListView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:clickable="false"
            local:MvxBind="{}" />
    </LinearLayout>
</LinearLayout>

此处绑定为空,但可以正常工作。列表具有可变数量的元素,因此固定高度是不可能的......

提前致谢!

4

2 回答 2

2

看看MvxBindableLinearLayout——但显然,如果您完整地显示一个或多个长列表,您可能会使用大量额外资源(内存、图形对象等)。

于 2013-01-09T14:47:06.733 回答
1

您可以使用一个技巧让您的列表增长,然后将它们放在滚动视图中。请参阅下面的代码。您可以像使用常规 MvxBindableListView 一样使用它。

public class BindableExpandableHeightListView : MvxBindableListView
{
   public BindableExpandableHeightListView(Context context, IAttributeSet attrs) : base(context, attrs) { }

   public BindableExpandableHeightListView(Context context, IAttributeSet attrs, MvxBindableListAdapter adapter) : base(context, attrs, adapter) { }

   private bool _isExpanded = true;

    protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec)
    {
        if (_isExpanded)
        {
            int expandSpec = MeasureSpec.MakeMeasureSpec(int.MaxValue >> 2, MeasureSpecMode.AtMost);
            base.OnMeasure(widthMeasureSpec, expandSpec);

            ViewGroup.LayoutParams layoutParams = LayoutParameters;
            layoutParams.Height = MeasuredHeight;
        }
        else
        {
            base.OnMeasure(widthMeasureSpec, heightMeasureSpec);
        }
    }

}
于 2013-01-10T13:52:30.180 回答