在ListView初始化后setAdapter后面調用此方法
/** * 重新計算ListView的高度,解決ScrollView和ListView兩個View都有滾動的效果,在嵌套使用時起沖突的問題 * @param listView */ public void setListViewHeight(ListView listView) { // 獲取ListView對應的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount ()返回數據項的數目 View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); // 計算子項View 的寬高 totalHeight += listItem.getMeasuredHeight(); // 統計所有子項的總高度 } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCoun t() - 1)); listView.setLayoutParams(params); }
ScrollView下嵌套的ListView用LinearLayout包裹住,如果還有其他的控件同樣要用LinearLayout包裹起來
也就是說ScrollView下可以嵌套多個LinearLayout,并且可以滑動
另外在引用的R.layout.item里必須要用LinearLayout不能用類似RelativeLayout方法,因為不會重新measure方法。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。