我一直在尝试在我的布局中放置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>
在这里绑空,但完全正常工作。列表具有可变数量的元素,因此无法固定高度......
提前致谢!
答案 0 :(得分:2)
查看MvxBindableLinearLayout
- 但如果您完整地显示一个或多个长列表,显然可以考虑使用大量额外资源(内存,图形对象等)。
答案 1 :(得分: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);
}
}
}