您的位置:首页 > 移动开发 > Android开发

ListView 如何判断ListView是否可以滑动(即ListView的Item总数是否超过可视区域)

2016-01-09 14:36 711 查看
ListView 如何判断ListView是否可以滑动(即ListView的Item总数是否超过可视区域,或者说是否需要滑动,也就是说ListView的所有item都在一个屏幕内的情况,不需要滑动ListView就可以显示ListView的所有Item)。
/**
* @Description: 判断ListView是否可以滑动,即ListView的Item是否显示在同一个屏幕内,不需要滑动就能全部显示。
* @author zlf
* @date 2016年01月09日 下午 15:06:08
*/
@SuppressLint("NewApi")
public static boolean listViewCanScroll(ListView mListView){
boolean canScrollList=mListView.canScrollList(1);//Android自带的方法,好像不太管用。
Clog.e(TAG,Constants.LOG_PLACE_HOLDER+" canScrollList "+canScrollList);

boolean canScroll=false;
int childCount=mListView.getChildCount();//返回的是当前可见区域的 Item 的总数。
int count=mListView.getCount();//返回的是 ListView 的所有的 Item 的总数。
int firstVisiblePosition=mListView.getFirstVisiblePosition();
int lastVisibkePosition=mListView.getLastVisiblePosition();

Clog.e(TAG,Constants.LOG_PLACE_HOLDER+" mListView.getChildCount() "+childCount);
Clog.e(TAG,Constants.LOG_PLACE_HOLDER+" mListView.getCount() "+count);
Clog.e(TAG,Constants.LOG_PLACE_HOLDER+" mListView.getFirstVisiblePosition() "+firstVisiblePosition);
Clog.e(TAG,Constants.LOG_PLACE_HOLDER+" mListView.getLastVisiblePosition() "+lastVisibke
8e77
Position);
/*
* 第一个可见的Item等于0,证明ListView是在最顶部,
*并且最后一个可见I的tem+1(Item是从0开始的)等于Item的总数的话,证明ListView在最底部
*如果一个ListView同时可以看见顶部和底部的话,证明该ListView是不可滑动的,即ListView的Item
*全在一个屏幕内,不需要滑动。
*/
if(firstVisiblePosition==0&&count==lastVisibkePosition+1){
canScroll=false;
}else{
canScroll=true;
}
Clog.e(TAG,Constants.LOG_PLACE_HOLDER+"canScroll "+canScroll);
return canScroll;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息