ListView使用小技巧
来源:互联网 发布:jing 软件 编辑:程序博客网 时间:2024/05/22 12:41
1.设置分割线高度和颜色
android:divider="@android:color/darker_gray" android:dividerHeight="10dp"
2.隐藏滚动条
android:scrollbars="none"
3.取消点击效果(5.x以上是波纹)
android:listSelector="@android:color/transparent"
4.设置listView需要显示在第几页
//N代表第N个item mListView.setSelection(N); //平滑效果 mListView.smoothScrollToPosition(index); mListView.smoothScrollBy(distance,duration); mListView.smoothScrollByOffset(offset);
5.遍历所有item
for(int i=0;i<mListView.getChildCount();i++){ View view=mListView.getChildAt(i); }
6.设置空空数据显示提示
mListView.setEmptyView(view);
7.listView滑动监听
①、onTonchListener
mListView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: //触摸时操作 break; case MotionEvent.ACTION_MOVE: //移动时操作 break; case MotionEvent.ACTION_UP: //离开时操作 break; } return false; } });
②、onScrollListener
mListView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView absListView, int state) { switch (state) { case SCROLL_STATE_IDLE: //滑动停止时 break; case SCROLL_STATE_TOUCH_SCROLL: //正在滚动 break; case SCROLL_STATE_FLING: //手指抛动时 即手指用力滑动 //在离开后ListView由于惯性继续滑动 break; } } @Override public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) { //滑动时一直调用 //firstVisibleItem:当前能看到的第一个item的id,从0开始 //visibleItemCount:当前能看到的Item的总数,显示了一小半的item也包括在内了 //整个listView的item总数 if(firstVisibleItem+visibleItemCount==totalItemCount && totalItem-count>0){ //滑动到最后一行 } if(firstVisibleItem>lastVisibleItemPosition){ //上滑 }else if(firstVisibleItem<lastVisibleItemPosition){ //下滑 } lastVisibleItemPosition=firstVisibleItem; } });
8.listView获取最后一个item的id和第一个的id
mListView.getLastVisiblePosition(); mListView.getFirstVisiblePosition();
9.具有弹性的listView
只需重写overScrollBy方法即可
@Override protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, maxOverScrollY, isTouchEvent); }
重写之后:
@Override protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX+slideDistanceX, maxOverScrollY+slideDistanceY, isTouchEvent); }
当然计算的时候为了适应多分辨率:
DisplayMetrics metrics = context.getResources().getDisplayMetrics(); float density = metrics.density; slideDistanceX =(int)(density * slideDistanceX); slideDistanceY =(int)(density * slideDistanceY);
原文
0 0
- ListView使用小技巧
- listview使用小技巧
- ListView使用小技巧
- 使用ListView一些小技巧
- 使用ListView一些小技巧
- 使用ListView一些小技巧
- [转]使用ListView一些小技巧
- android-listView小技巧
- ListView小技巧总结
- [Android]ListView小技巧
- [Android]ListView小技巧
- ListView 小技巧
- ListView常用小技巧
- ListView常用小技巧
- ListView常用小技巧
- ListView常用小技巧
- ListView常用小技巧
- ListView常用小技巧
- 哎,学一半发现难以绕过著名数据分析模块
- java自增策略小陷阱
- 详解自主实现RecyclerView下拉刷新、上拉加载、Header、Footer以及swiperefreshlayout的部分讲解
- MD5加密函数签名校验+时间戳时间间隔校验
- *** No rule to make target
- ListView使用小技巧
- webservice传值list<map>
- Python基础03 序列
- Android 开发规范
- GPUImage使用几点总结
- Hibernate学习笔记
- 图解DbgView使用
- Python基础04 运算
- Oracle数据库常用命令