1、设置item显示的数目,通过设置listView的高度实现
listView布局:
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/contact_dialog_listView"
/>
动态设置listView高度:
private void setListViewHeight(ListView listView,String[] contacts){
if (contacts.length > 5){
ViewGroup.LayoutParams layoutParams = listView.getLayoutParams();
layoutParams.height = MyWindowManager.getScreenHeight(mContext) / 2 - 50; //获取屏幕高度
listView.setLayoutParams(layoutParams);
}
}
2、通过实现Adapter方式,重写getCount()方法,无法实现。如下:
public class FloatContactViewAdapter<T> extends ArrayAdapter<T> {
private static final int MAX_ITEM_COUNT = 5;
private List<T> mItemList = null;
public FloatContactViewAdapter(Context context, int resource, List<T> objects) {
super(context, resource, objects);
mItemList = objects;
}
@Override
public int getCount() {
if (mItemList == null)
return 0;
return Math.min(MAX_ITEM_COUNT,mItemList.size());
}
}
这种方式,最终listView只会显示getCount()中返回的数目,存在listView不能滑动的问题,即显示不了其他的数据。