android 群英传笔记 listview的一些相关小记录
2017-03-07 15:35
549 查看
一:ListView常用优化技巧
1.使用ViewHolder模式提高效率:充分利用了视图缓存机制,避免每次都调用getview()的时候去findViewById实例化控件。在adapter中定义一个ViewHolder即可
2.设置子item间分割性:在XML中 android:dividerHeight="10dp"
android:divider=“@android:color/darker_gray” //设置成@null时为透明
3.隐藏滚动条:android:scrollbars=“none”
4.取消listview的item点击效果:android:listSelector="#000000"
5.设置listview需要显示在第几项: lstview.setSelection(N) N就是需要现实的第N个Item这个方法类似乳scrollTo是瞬间完成移动的,除此之外,还可以使用
listview.smoothScrollBy(distance,duration)
listview.smoothScrollByOffset(offset)
listview.smoothScrollToPosition(index)来实现平滑移动
6.动态修改listview 修改listview的数据源调用listview的adapter.notifyDateSetChanged()
7.遍历所有的item
for(int i=0;i<listView.getChildCount();i++){
View view = listView.getChildAt(i)
}
8.处理空的listview:listview设置了setEmptyView(R.id.empty_view)的方法,当填充listview的数据源为空时,就会显示empty_view。这个布局就写在与listview布局同级的activity布局中。这个activity用framelayout布局就行。
9.listview滑动监听:
onTouchListener 是view中的监听事件 :通过监听ACTION_DOWN, ACTION_MOVE ,ACTION_UP,这三个事件发生时的坐标,就可以判断用户滑动的方向,并在不同的事件中进行相应的逻辑处理。
onScollListener 是AbsListView的监听事件:可以监听listview的滚动状态。可以判断是否滚动到最后一行,判断上滑还是下滑。
二 listview的常用扩展
不同种类的item布局,在listview的adapter中
1.使用ViewHolder模式提高效率:充分利用了视图缓存机制,避免每次都调用getview()的时候去findViewById实例化控件。在adapter中定义一个ViewHolder即可
2.设置子item间分割性:在XML中 android:dividerHeight="10dp"
android:divider=“@android:color/darker_gray” //设置成@null时为透明
3.隐藏滚动条:android:scrollbars=“none”
4.取消listview的item点击效果:android:listSelector="#000000"
5.设置listview需要显示在第几项: lstview.setSelection(N) N就是需要现实的第N个Item这个方法类似乳scrollTo是瞬间完成移动的,除此之外,还可以使用
listview.smoothScrollBy(distance,duration)
listview.smoothScrollByOffset(offset)
listview.smoothScrollToPosition(index)来实现平滑移动
6.动态修改listview 修改listview的数据源调用listview的adapter.notifyDateSetChanged()
7.遍历所有的item
for(int i=0;i<listView.getChildCount();i++){
View view = listView.getChildAt(i)
}
8.处理空的listview:listview设置了setEmptyView(R.id.empty_view)的方法,当填充listview的数据源为空时,就会显示empty_view。这个布局就写在与listview布局同级的activity布局中。这个activity用framelayout布局就行。
9.listview滑动监听:
onTouchListener 是view中的监听事件 :通过监听ACTION_DOWN, ACTION_MOVE ,ACTION_UP,这三个事件发生时的坐标,就可以判断用户滑动的方向,并在不同的事件中进行相应的逻辑处理。
onScollListener 是AbsListView的监听事件:可以监听listview的滚动状态。可以判断是否滚动到最后一行,判断上滑还是下滑。
二 listview的常用扩展
不同种类的item布局,在listview的adapter中
@Override public View getView(int i, View view, ViewGroup viewGroup) { if (view != null){ if (getItemViewType(i) == 0){ // 给viewholder填充一种布局 }else { // 给viewholder填充另外一种布局 } } return view; } @Override public int getItemViewType(int position) { // 这里返回数据源中的item类型 return dataList.get(position).getType(); } @Override public int getViewTypeCount() { // 这里返回数据源中不同item类型的种类 return 2; }
相关文章推荐
- android 记录一些和apk相关的常用命令
- Android笔记--一些常用的不常用的小代码记录
- Android相关的一些技术文档记录
- 学习笔记 android开发 一些函数记录
- android-studio的gradle plugin配置相关的一些记录
- Android 的widget的一些开发相关介绍
- 软交换相关的一些笔记
- 对于linux socket与epoll配合相关的一些心得记录
- 对于linux socket与epoll配合相关的一些心得记录
- 最近的学习笔记,记录一些通俗易懂的学习类文章。更像是好资料参与索引。
- android 之 ListView相关
- 续写Android布局中一些琐碎的东西整理记录
- 最近的学习笔记,记录一些通俗易懂的学习类文章。更像是好资料参与索引。
- android kernel相关的一些技术
- 有关GCC的一些记录笔记
- 一些Android UI的相关文章链接
- 对于linux socket与epoll配合相关的一些心得记录
- 今天开始要详细的记录学习sharepoint 的进度和相关的一些资料
- 对于linux socket与epoll配合相关的一些心得记录(转)
- Android平台移植ffmpeg的一些笔记