1.ViewHolder
ViewHolder用何种修饰,ViewHolder初始化的次数是相同的,值为当前界面可见item+1,和concertView 的次数是一样的
2.设置ListView的分割线
(1)android :divider= “@android:color/drak_gray” (设置ListView的分割线和它的高度)
android : dividerHeight = "10dp"
(2)android divider = “@null”设置分割线为透明
3.隐藏ListView的滚动条
android scrollbars = "none"
4.取消ListView的Item的点击效果
android:listSeletor = “#000000”/android : listSelector = "@android :color/transparnet"
5.设置ListView需要显示在第几页
listView.setSelection(N) 其中N是需要显示的第N个item (瞬间完成)
listView.smoothScrollBy(distance,duration);(平滑移动)
listView.smoothScrollByOffset(offset);
listView.smoothScrollToPosition(index)
6.Adapter的notifyDateSetChanged()方法
在使用该方法时必须保证传进Adapter的数据List是同一个List而不是其他对象,否则将无法实现该效果
7.遍历ListView中所有的Item
for(int i = 0;i<listView.getChildCount();i++
){
View view = listView.getChildAt(i);
}
8.处理空ListView
setEmptyView(),可以设置一个空数据下显示的默认提示
9.ListView的滑动监听
onTouchListener是View的监听事件
listView.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v,MontionEvent event){
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
//触摸时的操作
break;
case MotionEvent.ACTION_MOVE:
//移动时的操作
break;
case MotionEvent.ACTION_UP:
//离开时的操作
break;
}
retuirn false;
}
})
onScrollListener是A表示ListView中的监听事件
listView.setOnScrollListener(new OnScrollListener(){
@Override
public void onScrollStateChanged(AbsListView view,int scrollState){
switch(scrollState){
case OnScrollListener.SCROLL_STATE_IDLE:
//滑动停止时
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
//正在滑动时
break;
case OnScrollListener.SCROLL_STATE_FLING:
//手指抛动时,即手指用力滑动时
break;
}
}
@Override
public void onScroll(AbsListView view,
int firstVisibleItem, //当前看到的第一个Item的Id(从0开始)
int visibleItemCount,//当前看到的Item
int totalItemCount)整个ListView的Item总数
})
注意,当前看到的Item的总数包括没有显示完整的Item
判断是否滚动到最后一行
if(firstVisibleItem + visibleItemCount = = totalItemCount$$totalItemCount>0){
//滚动到最后一行
}
判断滚动方向(通过lastVisibleItem记录上一次开始Item的Id)
if(firstVisibleItem >lastVisibleItem){
//上滑
}else if(firtVisible<lastVisibleItem){
//下滑
}
firstVisibleItem = lastVisibleItem ;
获取科可视区域内最后一个Item的Id
listView.getLastVisiblePosition()
获取可视区域的第一个Item的Id
listView.getFirstVisiblePosition();