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(); // 統(tǒng)計所有子項的總高度
}
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);
- 探討:如何在ScrollView中嵌套ListView
- Android中實現監(jiān)聽ScrollView滑動事件
- 在android中ScrollView嵌套ScrollView解決方案
- android TextView不用ScrollViewe也可以滾動的方法
- android 實現ScrollView自動滾動的實例代碼
- Android之ScrollView嵌套ListView和GridView沖突的解決方法
- android 自定義ScrollView實現背景圖片伸縮的實現代碼及思路
- ScrollView滾動條顏色的設置方法
- android開發(fā)教程之文本框加滾動條scrollview
- Android ScrollView嵌套ExpandableListView顯示不正常的問題的解決辦法
相關文章
JetpackCompose Navigation導航實現流程
Navigation是Jetpack用于Android導航的組件,作用是處理頁面跳轉,以及頁面跳轉過程中的交互。使用Navigation,你就需要為每個頁面設定一條唯一路徑,它是一個String常量,形式是DeepLink的樣子,從一個頁面跳轉到另一個頁面,它通過輸入目的地的路徑進行轉跳2023-01-01
Android獲取應用程序名稱(ApplicationName)示例
本文以實例方式為大家介紹下獲取應用程序名稱(ApplicationName)的具體實現,感興趣的各位可以參考下哈2013-06-06
Android Recyclerview實現水平分頁GridView效果示例
本篇文章主要介紹了Android Recyclerview實現水平分頁GridView效果示例,具有一定的參考價值,有興趣的可以了解一下2017-08-08

