public class ListViewAdaptWidth extends ListView { public ListViewAdaptWidth(Context context) { super(context); } public ListViewAdaptWidth(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public ListViewAdaptWidth(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int maxWidth = meathureWidthByChilds() + getPaddingLeft() + getPaddingRight(); super.onMeasure(MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.EXACTLY), heightMeasureSpec); } public int meathureWidthByChilds() { int maxWidth = 0; View view = null; for (int i = 0; i < getAdapter().getCount(); i++) { view = getAdapter().getView(i, view, this); view.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); if (view.getMeasuredWidth() > maxWidth){ maxWidth = view.getMeasuredWidth(); } } return maxWidth; } }
根据listview的条目长度撑满pop的自定义ListView
最新推荐文章于 2020-11-27 04:25:24 发布
这是一个自定义的ListView实现,名为ListViewAdaptWidth,它能根据内部条目的宽度自动撑满popup的宽度。在onMeasure方法中,通过遍历并测量每个条目来计算最大宽度,并将其设置为ListView的精确宽度。
摘要由CSDN通过智能技术生成