GridView 和ListView中自适应高度
2016-08-25 12:13
295 查看
android中GridView 和ListView放在scrollView中时会默认的只有一行高这时就要我们自己计算出它的高度啦
首先是listview的
下面是Gridview的 注意里面要设置你的列数
首先是listview的
//动态设置listview的高度 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++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount()-1)); ((MarginLayoutParams)params).setMargins(10, 10, 10, 10); listView.setLayoutParams(params); }
下面是Gridview的 注意里面要设置你的列数
public void setListViewHeightBasedOnChildren(GridView listView) { // 获取listview的adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } // 固定列宽,有多少列 int col = 4;// listView.getNumColumns(); int totalHeight = 0; // i每次加4,相当于listAdapter.getCount()小于等于4时 循环一次,计算一次item的高度, // listAdapter.getCount()小于等于8时计算两次高度相加 for (int i = 0; i < listAdapter.getCount(); i += col) { // 获取listview的每一个item View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); // 获取item的高度和 totalHeight += listItem.getMeasuredHeight()+40; //添加40顶边距等 } // 获取listview的布局参数 ViewGroup.LayoutParams params = listView.getLayoutParams(); // 设置高度 params.height = totalHeight; // 设置margin ((MarginLayoutParams) params).setMargins(10, 10, 10, 10); // 设置参数 listView.setLayoutParams(params); }
相关文章推荐
- ScrollView嵌套ListView或GridView等,使得其高度自适应解决方案
- ExpandableListView 里面嵌套GridView实现高度自适应
- ListView与GridView自适应高度,与Bug解决gridView.getNumColumns() = -1
- ListView和GridView根据item数量自适应高度的工具类封装
- ListView 与 GridView 在ScrollView中自适应高度
- scrollview同时嵌套listview和gridview 显示高度问题【只显示一行】
- listview,gridview 邪恶的wrap_content高度属性导致数据错乱
- android ListView 嵌套scrollView 自适应高度
- listView嵌套GridView后gridview显示高度显示问题
- 时常用于listview中嵌套Gridview 测量高度
- Android——自定义自适应高度的GridView
- 动态设定GridView的高度,固定column,实现高度自适应
- GridView的高度自适应
- 自动计算高度gridview/listview
- 安卓获取ListView、GridView等滚动的距离(高度)
- 如何获得ListView、GridView 及其子项的高度
- 深入理解布局容器绘制,解决ListView嵌套listview,或者ScrollView嵌套listview,gridview的高度问题解决方法
- Android GridView之添加分隔线,动态设置高度,实现高度自适应,并解决第一个item不显示的问题
- android设置GridView高度自适应,实现全屏铺满效果
- scrollview与listview、gridview嵌套高度冲突解决思路