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);

最新文章

  1. WebComponent魔法堂:深究Custom Element 之 标准构建
  2. Nginx 多站点配置
  3. Jquery 读取表单选中值
  4. Linux的Cgroup
  5. WebBrowser实现编辑网页
  6. Catalyst揭秘 Day6 Physical plan解析
  7. fiddler 插件开发
  8. 24种设计模式--工厂方法模式【Factory Method Pattern】
  9. 让DIV的滚动条自动滚动到最底部 - 4种方法
  10. Unity编程标准导引-3.3 Transform
  11. WordPress制作一个首字母排序的标签页面
  12. [HNOI2014]画框
  13. H5学习之旅-xhtml语法(15)
  14. JHipster简介
  15. linux http服务源码编译安装详解
  16. SpringMVC学习(二)———— 参数绑定
  17. Spring集成shiro做登陆认证
  18. python3.5.2中文字符乱码问题解决
  19. emWin 界面切换注意事项
  20. 【AtCoder】AGC020

热门文章

  1. windows下的Mysql安装与基本使用(msi)
  2. python的变量类型(Day6)
  3. beego——模型(model)
  4. Python(输入、输出;简单运算符;流程控制;转译)
  5. 简单的menu和点击(包括alertDialog定制)
  6. python中的pass语句是什么
  7. (转载)Hibernate与Jpa的关系
  8. Wannafly交流赛1 _A_有理数 【水】
  9. akka框架地址
  10. SpringBoot RedisMQ消息队列与发布订阅