/// <summary> /// 更新界面 /// </summary> public void NotifyDataSetChanged() { if (_Adapter == null) { return; } //获取当前可加载的个数 _CurrentRow = _InitRow; int maxNum = _Column * _InitRow; if (maxNum > _Adapter.GetItemCount()) { maxNum = _Adapter.GetItemCount(); } _MaxRow = (int)Math.Ceiling(_Adapter.GetItemCount() * 1f / _Column) + 2; vSBar.Maximum = _MaxRow; vSBar.Value = 0; //清除旧的子项目 flContent.Controls.Clear(); _ViewHolderList = new List <ViewHolder>(maxNum - 1); //初始化第一次显示的项目,先加载maxNum行数据 for (int i = 0; i < maxNum; i++) { //创建要显示的项目以及 ViewHolder viewHolder = _Adapter.OnCreateViewHolder(_Adapter.GetDataType(i)); //将数据显示到条目中 _Adapter.OnBindViewHolder(viewHolder, i); //将控件显示到流布局中 flContent.Controls.Add(viewHolder.Control); //开始加载条目 viewHolder.StartLoad(); //将ViewHolder存入集合,循环使用 _ViewHolderList.Add(viewHolder); } }