ScrollView與ListView合用問題(正確計算Listview的高度)
最近做專案中用到ScrollView和ListView一起使用的問題,顯示的時候ListView不能完全正確的顯示,查了好多資料終於成功解決:
首先,ListView不能直接用,要自定義一個,然後重寫onMeasure()方法:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
第二步:寫個計算listView每個Item的方法:
public void setListViewHeightBasedOnChildren(ListView listView) {
// 獲取ListView對應的Adapter
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); 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.getCount() - 1));
// listView.getDividerHeight()獲取子項間分隔符佔用的高度
// params.height最後得到整個ListView完整顯示需要的高度
listView.setLayoutParams(params);
}
第三步:listview新增介面卡後設定高度即可:
listView.setAdapter(adapter);
new ListViewUtil().setListViewHeightBasedOnChildren(listView);
相關文章
- ListView與ScrollView衝突,計算ListView的高度Item,然後重繪View
- 正確處理listview的positionView
- android listview and scrollviewAndroidView
- 解決Flutter的ListView巢狀ListView滑動衝突以及無限高度問題FlutterView巢狀
- 從原理上說說ScrollView巢狀ListView的問題View巢狀
- 四種方案解決ScrollView巢狀ListView問題View巢狀
- Android-GridView與ScrollView共用的衝突問題(類似ListView)AndroidView
- ScrollView中用ListView的事件衝突View事件
- ScrollView 與ListView 滑動衝突解決View
- android 設定listview高度AndroidView
- android之截圖(包括擷取scrollview與listview的)AndroidView
- ScrollView中巢狀ListView,TextView只顯示一行的高度解決方案巢狀TextView
- 精確計算微信小程式scrollview高度,全機型適配微信小程式View
- ScrollView中巢狀GridView,Listview的辦法View巢狀
- 【Android】ScrollView巢狀ListView只顯示第一行問題原理分析AndroidView巢狀
- ScrollView巢狀ListView解決辦法以及原理View巢狀
- android:listView Button 焦點問題AndroidView
- 重寫ListView解決ListView內部ViewPaper滑動事件衝突問題View事件
- Android中焦點移到ListView的問題(轉)AndroidView
- ListView Item 選擇問題解決之道View
- ListViewView
- RecyclerView與ListView比較View
- Adapter.notifyDataSetChanged與ListView.Post()重新整理問題APTView
- android NestedScrollView和ListView衝突問題AndroidView
- 開發函式計算的正確姿勢 —— 排查超時問題函式
- 安卓 listview安卓View
- QML::ListViewView
- 直播平臺搭建,動態設定ListView的高度的兩種方法View
- Android的ListViewAndroidView
- 關於ListView的getView方法被多次重複呼叫的問題View
- onMeasure簡單方法 完美解決ListView與ScollView衝突問題!View
- ListView 與 RecyclerView 簡單對比View
- Android listview與adapter用法AndroidViewAPT
- Android:ListView的擴充與進階AndroidView
- Android之ListView與SimpleAdapter的使用AndroidViewAPT
- ASP.NET3.5的ListView與CSS FriendlyASP.NETViewCSS
- 完美解決ScrollView巢狀ListView滑動衝突(有圖有真相)View巢狀
- ListView優化View優化