向ListView 中添加大数据量解决屏幕刷新“闪”的现象
2012-01-04 22:53
281 查看
向listview中添加超过10000条或更多的数据时,如果我们一条条添加,屏幕会闪的厉害,如果我们一次性添加,可能我们要等上很长时间才能出现结果。
为了解决(准确的是减轻)这个问题,我们采用ListView的方法AddRange(),配合BeginUpdate()和EndUpdate()使用。
/article/4732832.html
/article/1359695.html
http://topic.csdn.net/u/20110310/11/0ea9099a-1e43-4f71-80d6-87908df21881.html
http://www.eoeandroid.com/thread-75930-1-1.html
/article/7563646.html
为了解决(准确的是减轻)这个问题,我们采用ListView的方法AddRange(),配合BeginUpdate()和EndUpdate()使用。
FillListView() { Int TotalRecord = 10008; //总的记录数 Int EveryTimeRecord = 100; //每次批量增加的数量 Int TotalTimes = Math.Floor(TotalRecord / EveryTimeRecord);//批量添加的执行次数 For(int I = 0; I < TotalTimes; i++) { ListViewItem[] listViewItems; //声明listviewitem集合,以便满足AddRange所需的参数 If(I < TotalTimes - 1) //I 不是最后一次执行 { listViewItems = new ListViewItem[initCount]; for ( int j = 0; j < EveryTimeRecord; j++ ) { int indexRecord = j + i * EveryTimeRecord; // 记录的索引 listViewItems[i] = new ListViewItem( ); listViewItems[i] = AddListViewItem ( batchDocuments[indexRecord] ); } } Else //最后一次执行,剩下的余数 { int lastQuantity = TotalRecord - EveryTimeRecord * i; listViewItems = new ListViewItem[lastQuantity]; for ( int j = 0; j < lastQuantity; j++ ) { int indexRecord = j + i * EveryTimeRecord; // 记录的索引 listViewItems[i] = new ListViewItem( ); listViewItems[i] = AddListViewItem ( batchDocuments[indexRecord] ); //将一个已知listviewitem赋值给声明的listviewitem } } ListView.BeginUpdate(); ListView.Items.AddRange( listViewItems ); //利用AddRange批量增加,目的是减少刷屏次数,减轻不断闪烁问题。 ListView.EndUpdate(); } }
/article/4732832.html
/article/1359695.html
http://topic.csdn.net/u/20110310/11/0ea9099a-1e43-4f71-80d6-87908df21881.html
http://www.eoeandroid.com/thread-75930-1-1.html
/article/7563646.html
相关文章推荐
- Android 自定义listview 添加监听器 解决屏幕滑动组件状态干扰的问题checkbox
- XListView刷新不够一屏幕有残影解决方法
- android自定义listview,添加监听器,解决屏幕滑动组件状态干扰的问题checkbox ...
- android自定义listview,添加监听器,解决屏幕滑动组件状态干扰的问题checkbox
- 在ListView里添加viewPager为header时,viewPager滑动失去焦点的解决办法
- 对于Listview未满一屏添加footerView 满了一屏幕将View固定在屏幕下方的解决方案
- listview和listFragment详细版,已解决chebox的复用,Glide实现图片的圆形,以及按钮添加数据
- 下拉刷新列表添加SwipeDismissListViewTouchListener实现滑动删除某一列。
- 关于ExpandableListView刷新的解决办法
- HorizontalListView中setSelection方法没有实现的数据刷新的解决方法
- Android 关于ExpandableListView刷新问题的解决方法
- Android中Listview的getChildAt()只能更新当前显示在屏幕上的Item的解决办法
- iOS11之后刷新tableview会出现漂移的现象解决办法
- 双缓冲方法解决屏幕刷新闪烁的问题
- ListView中添加的HeadView隐藏时仍然占用空间的解决方法
- vs2010自动添加行号以及屏幕闪过解决办法
- 解决ScrollView 嵌套ListView不能刷新,加载更多问题
- 解决iOS11刷新tableview会出现漂移和抽疯的现象
- 解决Android在listview添加checkbox实现单选多选操作问题
- ViewPager添加ListView时出现多层ListView嵌套 界面错乱问题解决