listview 总结
16lz
2022-03-07
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();
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();
更多相关文章
- android实现标题栏、状态栏图标文字颜色及背景动态变化
- 【Android】Android处理Home键方法小结
- Android(安卓)Studio--报错日记
- Android去掉标题,强制设置横屏或竖屏
- Android(安卓)HorizontalScrollView 水平滑动 在listview上面动
- Android设置权限问题
- Android中的DownloadManager
- android中 检查网络连接状态的变化,无网络时跳转到设置界面
- Android(安卓)动态添加View 并设置id