Mega Code Archive

 
Categories / Android / UI
 

Set ListView Height Based On Children

//package com.omareitti; import java.util.List; import java.util.UUID; import android.app.Activity; import android.app.ActivityManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Parcelable; import android.telephony.TelephonyManager; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ListAdapter; import android.widget.ListView; public class Utils {     public static void setListViewHeightBasedOnChildren(ListView listView) {         ListAdapter listAdapter = listView.getAdapter();          if (listAdapter == null) {             // pre-condition             return;         }         int totalHeight = 0;         for (int i = 0; i < listAdapter.getCount(); i++) {             View listItem = listAdapter.getView(i, null, listView);             listItem.measure(0, 0);             totalHeight += listItem.getMeasuredHeight();         }         ViewGroup.LayoutParams params = listView.getLayoutParams();         params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));         listView.setLayoutParams(params);         listView.requestLayout();     }    }