1

我有一個可擴展列表,裏面第一個孩子是Gridview。在這裏我有GridView高度切割的問題。我解決了這個問題:Gridview height gets cutGridView項目不滾動裏面Expandable list

現在我得到新的問題是,不能夠在一定的高度下滾動gridview項目。我需要在這裏添加滾動條,因爲gridview項目可能會動態增長。

我能夠做到這一點與正常的gridview,但在可擴展列表視圖下顯示這個煩人的問題。

代碼:

<ExpandableListView 
      android:id="@+id/Explst" 
      android:layout_height="400dp" 
      android:transcriptMode="disabled" 
      android:layout_width="match_parent" 
      android:layout_marginTop="0.5dp" /> 

的GridView在擴展列表自定義佈局:

<mynamespace.ExpandableHeightGridView 
     android:id="@+id/gridview" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:columnWidth="90dp" 
     android:numColumns="auto_fit" 
     android:verticalSpacing="20dp" 
     android:horizontalSpacing="2dp" 
     android:stretchMode="columnWidth" 
     android:isScrollContainer="false" 
     android:gravity="center" /> 

定製expandableheightgridview.cs

mynamespace 
{ 
     public class ExpandableHeightGridView :GridView 
    { 
     bool _isExpanded = false; 

     public ExpandableHeightGridView (Context context) : base (context) 
     {    
     } 

     public ExpandableHeightGridView (Context context, IAttributeSet attrs) : base (context, attrs) 
     {    
     } 

     public ExpandableHeightGridView (Context context, IAttributeSet attrs, int defStyle) : base (context, attrs, defStyle) 
     {    
     } 

     public bool IsExpanded { 
      get { return _isExpanded; } 

      set { _isExpanded = value; } 
     } 

     protected override void OnMeasure (int widthMeasureSpec, int heightMeasureSpec) 
     { 
      if (IsExpanded) { 
       int expandSpec = MeasureSpec.MakeMeasureSpec (View.MeasuredSizeMask, MeasureSpecMode.AtMost); 
       base.OnMeasure (widthMeasureSpec, expandSpec);     

       var layoutParameters = this.LayoutParameters; 
       layoutParameters.Height = this.MeasuredHeight; 
      } else { 
       base.OnMeasure (widthMeasureSpec, heightMeasureSpec);  
      } 
      base.OnMeasure(widthMeasureSpec, heightMeasureSpec); 

     } 
    } 

} 

任何建議/提示/鏈接是明顯的。 我想在xamarin.android c#中,但即使任何java android解決方案也是有幫助的。

謝謝

回答

0

您必須設置expand = true;

mExpandGrid= (ExpandableHeightGridView) findViewById(R.id.mExpandGrid); 
mExpandGrid.setExpanded(true); 
+0

是的,我已經做到了。展開工作沒有任何問題。但無法爲該網格項目設置滾動條,這是可擴展列表子項。 – Suchith