ListUtils.java (1123B)
1 package drsocto.shlist; 2 3 import android.view.View; 4 import android.view.ViewGroup; 5 import android.widget.ListAdapter; 6 import android.widget.ListView; 7 8 /** 9 * Created by David on 7/12/2015. 10 */ 11 public class ListUtils { 12 public static void setDynamicHeight(ListView mListView) { 13 ListAdapter mListAdapter = mListView.getAdapter(); 14 if (mListAdapter == null) { 15 // when adapter is null 16 return; 17 } 18 int height = 0; 19 int desiredWidth = View.MeasureSpec.makeMeasureSpec(mListView.getWidth(), View.MeasureSpec.UNSPECIFIED); 20 for (int i = 0; i < mListAdapter.getCount(); i++) { 21 View listItem = mListAdapter.getView(i, null, mListView); 22 listItem.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED); 23 height += listItem.getMeasuredHeight(); 24 } 25 ViewGroup.LayoutParams params = mListView.getLayoutParams(); 26 params.height = height + (mListView.getDividerHeight() * (mListAdapter.getCount() - 1)); 27 mListView.setLayoutParams(params); 28 mListView.requestLayout(); 29 } 30 }