android根据ListView内部Item最大长度来设置ListView的宽度
16lz
2021-01-24
/** * 循环找到ListView最大宽度 */private int getMaxWidth(ListView listView) {int maxWidth = 550;if (listView.getAdapter() == null) {return maxWidth;}int count = listView.getAdapter().getCount();View view = null;for (int i = 0; i < count; i++) {view = listView.getAdapter().getView(i, null, listView);view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));if (view.getMeasuredWidth() > maxWidth) {maxWidth = view.getMeasuredWidth();}}if (getActivity().getResources().getDisplayMetrics().widthPixels < maxWidth) {return getActivity().getResources().getDisplayMetrics().widthPixels - 50;}return maxWidth;}
首先是找到ListAdapter,通过其循环找到最大长度,最后判断最大长度是否超过屏幕长度。
更多相关文章
- android 屏幕保持唤醒 不锁屏
- android-屏幕分辨率那点事儿
- Android(安卓)NestedScrollView嵌套RecyclerView的问题
- 《疯狂Android讲义》笔记整理
- Android(安卓)Fragment 真正的完全解析(下)
- android适配不同分辨率的手机
- android 动态改变屏幕方向
- launcher修改--获取屏幕缩略(预览)图
- Android入门教程(九)之-----取得手机屏幕大小DisplayMetrics的应