1.原理
在很多时候ListView列表数据不需要全部刷新,只需刷新有数据变化的那一条,这时可以用getChildAt(index)获取某个指定position的view,并对该view进行刷新。
注意:在ListView中,使用getChildAt(index)的取值,只能是当前可见区域(列表可滚动)的子项!
即取值范围在 >= ListView.getFirstVisiblePosition() && <= ListView.getLastVisiblePosition();
1)所以如果想获取前部的将会出现返回Null值空指针问题;
2)getChildCount跟getCount获取的值将会不一样(数量多时);
3 )如果使用了getChildAt(index).findViewById(...)设置值的话,滚动列表时值就会改变了。
需要使用getFirstVisiblePosition()获得第一个可见的位置,再用当前的position-它,再用getChildAt取值!即getChildAt(position - ListView。getFirstVisiblePosition()).findViewById(...)去设置值
2.如果想更新某一行数据,需要配合ListView的滚动状态使用,一般不滚动时才加载更新数据
//全局变量,用来记录ScrollView的滚动状态,1表示开始滚动,2表示正在滚动,0表示停止滚动
伪代码
ListView设置
public int scrollStates;
class OnScrollListenerImpl implements OnScrollListener{
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
scrollStates = scrollState;
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
int lastInScreen = firstVisibleItem + visibleItemCount;
}
listView.setOnScrollListener(new OnScrollListenerImpl());
Activity中
if(scrollStates==OnScrollListener.SCROLL_STATE_IDLE){
更新视图数据
}
分享到:
相关推荐
android ListView添加HeadView的demo
android中ListView嵌套GridView的使用
c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法...
C# ListView使用例子ListView排列方式演示
1、ListView item中加入checkbox后onListItemClick 事件无法触发。 原因:checkbox的优先级高于ListItem于是屏蔽了ListItem的单击事件。 解决方案:设置checkbox的android:focusable="false" 2、选择其中的...
ListView中Spinner的使用,主要解决了对于Spinner状态的保持和对Spinner做了相应事件之后,对于ListView的OnItemClick事件的相应的处理等问题。
ListView的基本使用带Button
平时练习时做的demo,sqlite的增删改,sharedPrefences用法,listView中组件事件的用法,初学者必看,感觉不错的下完记得顶个.
C# ListView中添加ComboBox等控件 效果见 http://blog.csdn.net/xuegacl/article/details/49795479
在listview中使用不同的字体或颜色 在listview中使用不同的字体或颜色 在listview中使用不同的字体或颜色
C#的ListView添加各种自定义控件,CheckBox,ComboBox等
C# Treeview listview
在ListView中有CheckBox 时如何更新界面,如何处理事件。 数据量大的时候如何分页加载数据,作为一个学习的实例,可以慢慢扩充并研究。
基于Eclipse开发平台,Android中使用ListView和三种适配器(ArrayAdaper,SimpleAdapter,BaseAdapter)实现数据的填充。
C#中ListView控件的虚模式使用方法 本人收藏了3年的资源 现放出 都是总结了很多系统 软件项目实施过程中的经验的 慢慢积累的
listview c# c#listview 使用大全例 c#listview 使用
有时候我们需要在ListView中嵌入一些控件,比如说Gallery,该Demo就可以完成这个功能。
C#中,使用Thread新创建一个线程来查询数据库中的信息显示在控件“listView1”上,需要使用Invoke(代理名)方法来访问控件“listView1”,实例讲解 dailiEvent = new daili(SelecDB); if (listView1....
记不清出处了 先感谢我们的作者啦 好东西大家分享 ListView中的经典使用技巧
里面有关于listview tabhost 的各种使用 还有 Android ListView从网络获取图片及文字显示