Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set a maximum height with wrap content in android?

In android, how can you create a scroll view that's got a max height, and wrap contents, basically it wraps the content vertically, but has a maximum height?

I tried

<ScrollView       android:id="@+id/scrollView1"      android:layout_width="match_parent"      android:layout_height="wrap_content"          android:maxHeight="200dp"      android:layout_alignParentBottom="true" >      <LinearLayout         android:id="@+id/maincontainer"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:orientation="vertical">      </LinearLayout> </ScrollView> 

But this isn't working?

like image 963
omega Avatar asked Aug 25 '13 04:08

omega


1 Answers

you can add this to any view (override onMeasure in a class inherited from a view)

@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {     if (maxHeight > 0){         int hSize = MeasureSpec.getSize(heightMeasureSpec);         int hMode = MeasureSpec.getMode(heightMeasureSpec);          switch (hMode){             case MeasureSpec.AT_MOST:                 heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.AT_MOST);                 break;             case MeasureSpec.UNSPECIFIED:                 heightMeasureSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST);                 break;             case MeasureSpec.EXACTLY:                 heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.EXACTLY);                 break;         }     }      super.onMeasure(widthMeasureSpec, heightMeasureSpec); } 
like image 156
babay Avatar answered Sep 28 '22 03:09

babay