Android实用工具类——ListView动态显示条目数目
2017-01-13 14:43
323 查看
动态加载ListView的高度:
package com.example.epnc.utils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
/**
* Created by TCL on 2016/9/18.
*/
public class ListViewUtils {
/**
* 根据listView内部item的高度动态决定大小
*
* @param listView 要动态的listView
* @param count 几条之后滚动
*/
public static void setListViewHeightBasedOnChildren(ListView listView, int count) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
ViewGroup.LayoutParams params = listView.getLayoutParams();
if (listAdapter.getCount() < count) {
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
//listItem.notify();
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
} else {
View listItem = listAdapter.getView(0, null, listView);
listItem.measure(0, 0);
params.height = listItem.getMeasuredHeight() * count + listView.getDividerHeight() * count;
}
listView.setLayoutParams(params);
}
}
非常实用的工具类。
package com.example.epnc.utils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
/**
* Created by TCL on 2016/9/18.
*/
public class ListViewUtils {
/**
* 根据listView内部item的高度动态决定大小
*
* @param listView 要动态的listView
* @param count 几条之后滚动
*/
public static void setListViewHeightBasedOnChildren(ListView listView, int count) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
ViewGroup.LayoutParams params = listView.getLayoutParams();
if (listAdapter.getCount() < count) {
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
//listItem.notify();
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
} else {
View listItem = listAdapter.getView(0, null, listView);
listItem.measure(0, 0);
params.height = listItem.getMeasuredHeight() * count + listView.getDividerHeight() * count;
}
listView.setLayoutParams(params);
}
}
非常实用的工具类。
相关文章推荐
- android edittext,listview里面显示gif动态表情
- 【Android基础】listview控件的使用(3)------Map与SimpleAdapter组成的多显示条目的Listview
- Android实用笔记——使用ListView显示信息列表
- 实现可滑动,能在外部动态控制ListView显示个数的Android项目
- android之EditText实现动态显示隐藏密码输入框的内容(实用)
- Android开发:setContentView切换界面,自定义带CheckBox的ListView显示SQlite条目-----实现
- Android实战简易教程<五十一>(ListView实现子控件的动态显示和隐藏、checkbox全选和反选)
- Android 根据Edittext内容动态改变Listview显示的数据
- Android进阶笔记11:ListView篇之ListView显示多种类型的条目(item)
- Android中ListView条目带有左滑显示删除按钮的总结
- android 动态显示隐藏listview的headerview和headerview里的控件
- Android实战简易教程-第五十一枪(ListView实现子控件的动态显示和隐藏、checkbox全选和反选)
- android 动态显示隐藏listview的headerview和headerview里的控件
- 【android】 ListView 动态显示隐藏header和footer问题
- Android---ListView(显示条目)
- 【Android基础】listview控件的使用(3)------Map与SimpleAdapter组成的多显示条目的Listview
- Android实战简易教程-第十一枪(树形组件:ExpandableListView显示和动态添加删除)
- 【Android】ListView动态视图显示不全
- Android ListView嵌套GridView(同理嵌套ListView)类似QQ说说条目加点赞显示名称效果
- Android个人学习笔记之ListView知识应用-仿IOS百度云条目点击显示菜单模块实现