Android(安卓)listview 注意的地方
16lz
2021-01-26
在很多时候ListView列表数据不需要全部刷新,只需刷新有数据变化的那一条,这时可以用getChildAt(index)获取某个指定position的view,并对该view进行刷新。
1.getchaildAt其实是有取值范围的,超出范围就会返回null
下面给出范围:>= ListView.getFirstVisiblePosition() && <= ListView.getLastVisiblePosition();
需要使用getFirstVisiblePosition()获得第一个可见的位置,再用当前的position-它,再用getChildAt取值!即getChildAt(position - ListView。getFirstVisiblePosition())就会有值存在
2.getChildCount跟getCount获取的值将会不一样
ListView.getCount()(实际上是 AdapterView.getCount()) 返回的是其 Adapter.getCount() 返回的值。
也就是“所包含的 Item 总个数”。
ListView.getChildCount()(ViewGroup.getChildCount) 返回的是显示层面上的“所包含的子 View 个数”。
当 ListView 中的 Item 比较少无需滚动即可全部显示时,二者是等价的;当 Item 个数较多需要滚动才能浏览全部的话, getChildCount() < getCount()
其中 getChildCount() 返回的是当前可见的 Item 个数
更多相关文章
- Android6.0 SystemUI之网络信号栏显示刷新
- Android学习札记20:ScaleGestureDetector
- Android(安卓)开发注意事项
- android中实现返回首页功能
- Android(安卓)ListView优化之局部刷新(更新)(非notifyDataSetChange
- Android(安卓)Webservices 返回多行多列数据(Dataset)
- Android(安卓)UI ActionBar功能-Action Bar 左上角的向上或返回
- ViewPager+PagerTabStrip实现页面选项卡滑动
- 下拉刷新、上拉加载实战:带你理解自定义View整个过程