2013-01-09 50 views
0

我一直想在我的佈局中放置3個MvxBindableListView小部件,但沒有成功。 有沒有辦法做到這一點,以便每個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> 

在此處爲空,但完全正常工作。該列表有不同數量的元素,所以固定高度是不可能的...

在此先感謝!

回答

2

檢出MvxBindableLinearLayout - 但顯然認爲如果您完整顯示一個或多個長列表,您可能會使用大量附加資源(內存,圖形對象等)。

+0

是不是有辦法將MvxBindableListViews的高度設置爲列表的完整大小,以便它們不滾動,我可以使用ScollView? – Ivozor

+0

檢查出在Android文檔wrap_content – Stuart

+0

我試過了,它將列表的高度設置爲1的列表項的高度...並與列表仍然可滾動... :( – Ivozor

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); 
     } 
    } 

} 
+0

謝謝阿列克謝,但我最終使用斯圖亞特的方法...;) – Ivozor

相關問題