Android 遇坑【2】 - ScrollView 嵌套 ListView 时ListView数据显示不全
16lz
2021-01-23
ScrollView 嵌套 ListView 时,Android 会无法正确的计算 ListView 的大小。
因而提供两种 解决方法 :
- layout文件 中去掉嵌套
- 计算 listView 高度
private void fixListViewHeight(ListView listView) { int totalHeight = 0; // 如果没有设置数据适配器,则 ListView 没有子项,返回 ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) return; for (int index = 0,len = listAdapter.getCount(); index < len; index++ ) { View listViewItem = listAdapter.getView(index,null,listView); // 计算子项 View 的宽高 listViewItem.measure(0, 0); // 计算所有子项的高度和 totalHeight += listViewItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); //listView.getDividerHeight () 获取子项间分隔符的高度 //params.height 设置 ListView 完全显示需要的高度 params.height = totalHeight + (listView.getDividerHeight()*(listAdapter.getCount()-1)); listView.setLayoutParams(params); }
使用方法:
//适配器创建及设置 setting_adapter = new Setting_Adapter(getActivity(),data); list.setAdapter(setting_adapter); //解决ScrollView中listview显示数据不全的问题 fixListViewHeight(list);
更多相关文章
- Android中获取文本宽度和高度
- Android——分别获取导航栏、状态栏高度
- Android 获取drawable中图片的高度宽度
- Android之ScrollView嵌套ListView解决工具
- Android RecyclerView 子条目(item)嵌套 RecyclerView