android根據ListView內部Item最大長度來設定ListView的寬度
阿新 • • 發佈:2019-02-08
<span style="white-space:pre"> </span>/** * 迴圈找到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,通過其迴圈找到最大長度,最後判斷最大長度是否超過螢幕長度。