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