Android动态设定GridView的高度,固定column,实现高度自适应
2015-09-15 17:52
671 查看
动态设定GridView的高度,固定column,根据gridview中的item个数设定高度:
调用以下方法:
[java] view
plaincopy
public static 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();
}
// 获取listview的布局参数
ViewGroup.LayoutParams params = listView.getLayoutParams();
// 设置高度
params.height = totalHeight;
// 设置margin
((MarginLayoutParams) params).setMargins(10, 10, 10, 10);
// 设置参数
listView.setLayoutParams(params);
}
调用此方法后,需要在调用notifyDataSetChanged()方法,实现界面刷新
调用以下方法:
[java] view
plaincopy
public static 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();
}
// 获取listview的布局参数
ViewGroup.LayoutParams params = listView.getLayoutParams();
// 设置高度
params.height = totalHeight;
// 设置margin
((MarginLayoutParams) params).setMargins(10, 10, 10, 10);
// 设置参数
listView.setLayoutParams(params);
}
调用此方法后,需要在调用notifyDataSetChanged()方法,实现界面刷新
相关文章推荐
- Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE
- android toast设置比Toast.LENGTH_SHORT还短的持续时间
- android技术内幕心得
- Android之Animation动画的介绍及用法
- android ndk开发
- Android沉浸模式,沉浸式顶栏,变色龙状态栏
- Android多行文本折叠展开效果
- android懒人笔记
- android获取已安装nolaunch(没有安装图标)的apk
- Android之matrix类控制图片的旋转、缩放、移动
- android【采用pull解析xml文件】
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android开发环境的演变
- Android仿“知乎”隐藏标题栏、回答详情页动画效果
- Android Fragment基础介绍
- 使用Android Studio 练习RecyclerView 异步加载图片,解决图片乱序问题。
- Android核心安全机制
- Android 学习之CalendarManager日历管理工具类
- 关于Android开发环境配置问题
- Android增量更新