ScrollView與ListView合用(正確計(jì)算Listview的高度)的問題解決
首先,ListView不能直接用,要自定義一個(gè),然后重寫onMeasure()方法:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
第二步:寫個(gè)計(jì)算listView每個(gè)Item的方法:
public void setListViewHeightBasedOnChildren(ListView listView) {
// 獲取ListView對(duì)應(yīng)的Adapter
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); 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.getCount() - 1));
// listView.getDividerHeight()獲取子項(xiàng)間分隔符占用的高度
// params.height最后得到整個(gè)ListView完整顯示需要的高度
listView.setLayoutParams(params);
}
第三步:listview添加適配器后設(shè)置高度即可:
listView.setAdapter(adapter);
new ListViewUtil().setListViewHeightBasedOnChildren(listView);
- 探討:如何在ScrollView中嵌套ListView
- Android中實(shí)現(xiàn)監(jiān)聽ScrollView滑動(dòng)事件
- 在android中ScrollView嵌套ScrollView解決方案
- android TextView不用ScrollViewe也可以滾動(dòng)的方法
- android 實(shí)現(xiàn)ScrollView自動(dòng)滾動(dòng)的實(shí)例代碼
- Android之ScrollView嵌套ListView和GridView沖突的解決方法
- android 自定義ScrollView實(shí)現(xiàn)背景圖片伸縮的實(shí)現(xiàn)代碼及思路
- ScrollView滾動(dòng)條顏色的設(shè)置方法
- android開發(fā)教程之文本框加滾動(dòng)條scrollview
- Android ScrollView嵌套ExpandableListView顯示不正常的問題的解決辦法
相關(guān)文章
Android計(jì)算器簡(jiǎn)單邏輯實(shí)現(xiàn)實(shí)例分享
這篇文章主要介紹了Android計(jì)算器簡(jiǎn)單邏輯實(shí)現(xiàn)實(shí)例,有需要的朋友可以參考一下2014-01-01
Android?Kotlin全面詳細(xì)類使用語(yǔ)法學(xué)習(xí)指南
這篇文章主要為大家介紹了Android?Kotlin全面詳細(xì)類使用語(yǔ)法學(xué)習(xí)指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
JetpackCompose Navigation導(dǎo)航實(shí)現(xiàn)流程
Navigation是Jetpack用于Android導(dǎo)航的組件,作用是處理頁(yè)面跳轉(zhuǎn),以及頁(yè)面跳轉(zhuǎn)過程中的交互。使用Navigation,你就需要為每個(gè)頁(yè)面設(shè)定一條唯一路徑,它是一個(gè)String常量,形式是DeepLink的樣子,從一個(gè)頁(yè)面跳轉(zhuǎn)到另一個(gè)頁(yè)面,它通過輸入目的地的路徑進(jìn)行轉(zhuǎn)跳2023-01-01
Android獲取應(yīng)用程序名稱(ApplicationName)示例
本文以實(shí)例方式為大家介紹下獲取應(yīng)用程序名稱(ApplicationName)的具體實(shí)現(xiàn),感興趣的各位可以參考下哈2013-06-06
Android Recyclerview實(shí)現(xiàn)水平分頁(yè)GridView效果示例
本篇文章主要介紹了Android Recyclerview實(shí)現(xiàn)水平分頁(yè)GridView效果示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08
Android實(shí)現(xiàn)帶動(dòng)畫效果的可點(diǎn)擊展開TextView
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)帶動(dòng)畫效果的可點(diǎn)擊展開TextView,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Android開發(fā)實(shí)現(xiàn)自定義水平滾動(dòng)的容器示例
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)自定義水平滾動(dòng)的容器,涉及Android滾動(dòng)容器的事件響應(yīng)、屬性運(yùn)算與修改相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
Android實(shí)現(xiàn)圖片區(qū)域裁剪功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圖片區(qū)域裁剪功能,調(diào)用相冊(cè)、拍照實(shí)現(xiàn)縮放、切割圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Android Button按鈕點(diǎn)擊背景和文字變化操作
這篇文章主要介紹了Android Button按鈕點(diǎn)擊背景和文字變化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08

