Android中ScrollView嵌套ListView只显示一行的解决方案
16lz
2021-01-23
Android中ScrollView嵌套ListView只显示一行的解决方案
解决方案1:
直接把包含ListView控件的ScrollView控件从布局文件中去除,留下ListView控件,这是最简单快捷的解决办法.
如果一定要在ScrollView中包含ListView,则参考
解决方案2:
public void showlist(){ List> dataHashMaps = new ArrayList>(); for (int i = 0; i < 8; i++) { HashMap map = new HashMap(); map.put("name", "张三" + i); map.put("phone", "1333333333" + i); dataHashMaps.add(map); } System.out.println(dataHashMaps.size()); SimpleAdapter adapter = new SimpleAdapter(this, dataHashMaps, R.layout.item, new String[] { "name", "phone" }, new int[] { R.id.name, R.id.phone }); ListView listView = (ListView) findViewById(R.id.list); listView.setAdapter(adapter); //处理方案: int totalHeight = 0; // 如果没有设置数据适配器,则ListView没有子项,返回。 for (int index = 0, len = adapter.getCount(); index < len; index++) { View listViewItem = adapter.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() * (adapter.getCount() - 1)); listView.setLayoutParams(params); }
更多相关文章
- android 自定义ratingbar 图片显示不全的解决方案
- Android 多线程更新控件
- Android又一个超漂亮的日历控件
- Android studio RelativeLayout相对布局(控件相对父控件摆放-左上
- android 控件绘制完成的监听
- Android UI控件详解-AutoComplete-TextView(自动提示)
- android仿ipone滑动解锁控件
- Android UI控件详解-SeekBar(拖动条)