1. 程式人生 > >android根據ListView內部Item最大長度來設定ListView的寬度

android根據ListView內部Item最大長度來設定ListView的寬度

<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,通過其迴圈找到最大長度,最後判斷最大長度是否超過螢幕長度。