listview常用的优化技巧
16lz
2021-01-23
ListView在平时的开发中无处不见,今天就对本人平时开发遇到的一些问题做一个简单的总结:
1: 设置项目间的分割线:
android:divider="@android:color/darker_gray"
android:dividerHeight="1dp"
2:隐藏listview的滚动条
android:scrollbars="none"
3: 取消listview的Item的点击效果
android:listSelector="#00000000" 即设置透明色即可
4:设置Item点击之后赋予颜色:先给listview设置listSelector为你点击时要显示成的颜色,然后在adapter里面再控制一下这项的颜色,
在ListView的OnItemClickListener里边,将当前选中的item执行setSelected(true)
5: 设置listView 需要显示在第几页
listView.setSelection(N); N就是需要显示的第N个Item.
6: 动态修改ListView
mData.add("new");
mAdapter.notifyDataSetChanged();
7:遍历listView中的所有Item
for(int i=0;i
View view =mListView.getChildAt(i);
}
8:处理空的ListView
当listView没有数据展示时, listview 提供了一个方法--setEmptyView()
listView.setEmptyView(findViewById(R.id.**));
9:listView的重点来了:滑动监听
(1:OnTouchListener: 通过监听三个事件的发生
switch(event.gerAction()){
caseMotionEvent.ACTION_DOWN;
//触摸时的操作
break;
caseMotionEvent.ACTION_MOVE;
//移动时的操作
break;
caseMotionEvent.ACTION_UP;
//离开时的操作
break;
}
(2:OnScrollListener
mlistview.setOnScrollLister(new OnScrollLister()){
public voidonScrollStateChanged(AbsListView view, int scrollState){
switch(scrollState){
caseOnscrollListener.SCROLL_STATE_IDLE;
//滑动停止时:
break;
caseOnscrollListener.SCROLL_STATE_TOUCH_SCROLL;
//正在滚动
break;
caseOnscrollListener.SCROLL_STATE_FLING;
//手指抛开时既手指用力滑动
//在离开后listView由于惯性继续滚动
break;
}
}
}
@Override
public voidonScroll(AbListView view,int fistVisibleItem, int visibleItemCount,int totallItemCount){
//ListView滚动时一直调用
}
ListView可以具有弹性就像Iphone手机那样:具体的实现过程查看overScrollBy()方法
更多相关文章
- Android JNI 之 Bitmap 操作
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
- [转]android颜色对应的xml配置值
- Android 字体颜色渐变效果 Span实现
- Android AsyncTask 异步任务操作
- Android ListView(Selector 颜色)
- 图片压缩保存读取操作
- Android 数据库操作 创建 添加 删除 查询
- android gallery相关操作