使用环境:
界面需要延伸,但是列表的内容只显示一项,其他项看不到的时候使用;
使用方法:
import android.view.View; import android.view.ViewGroup; import android.widget.ListAdapter; import android.widget.ListView; public class Utility { public static void setListViewHeightBasedOnChildren(ListView listView) { //获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; 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.getDividerHeight()获取子项间分隔符占用的高度 //params.height最后得到整个ListView完整显示需要的高度 listView.setLayoutParams(params); } }
在列表setAdapter()以后调用
jobqualityBinding.recyclerFX 就是listview列表的对象
mAdapter = new QualityDataAdapter(1,mList3,this); jobqualityBinding.recycylerFX.setAdapter(mAdapter); Utility.setListViewHeightBasedOnChildren(jobqualityBinding.recycylerFX);