您的位置:首页 > 大数据

向ListView 中添加大数据量解决屏幕刷新“闪”的现象

2012-01-04 22:53 281 查看
向listview中添加超过10000条或更多的数据时,如果我们一条条添加,屏幕会闪的厉害,如果我们一次性添加,可能我们要等上很长时间才能出现结果。

为了解决(准确的是减轻)这个问题,我们采用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐