在我的应用程序中,我有一个带有“部分”的ListView。对于每个项目,我都添加了一个字母,但仅对于以该字母开头的第一个字词才可见。它工作正常,但如果我在我的ListView中向下滚动,订单更改,这意味着该信件将转到下一个项目。ListView刷新GetView()
例子:
A
--
- Alligator
- Ant
- Antelope
- Ape
但是,当我向下滚动,会发生以下情况:
- Aligator
A
--
- Ant
- Antelope
- Ape
功能,增加了我在GetView()
我该如何解决实施信这个问题? 我读过ListView在滚动时刷新,我该如何禁用刷新?还是有另一种方法来解决这个问题?
protected string old_char = "";
public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = sw_items [position];
View view;
convertView = null;
view = (convertView ??
this.context.LayoutInflater.Inflate (Resource.Layout.ItemLayout,
parent,
false)) as LinearLayout;
var txtTitle = view.FindViewById<TextView> (Resource.Id.txtTitle);
txtTitle.SetText (sw_items [position].name, TextView.BufferType.Normal);
var alfabet = view.FindViewById<TextView> (Resource.Id.alfabet);
var linAlfabet = view.FindViewById<LinearLayout> (Resource.Id.Lin_Alfabet);
if (convertView == null) {
string cnv_char = item.name [0].ToString().ToUpper();
alfabet.Text = cnv_char;
if (cnv_char != old_char) {
alfabet.Visibility = ViewStates.Visible;
linAlfabet.Visibility = ViewStates.Visible;
} else {
alfabet.Visibility = ViewStates.Gone;
linAlfabet.Visibility = ViewStates.Gone;
}
//saving previous char
old_char = cnv_char;
}
return view;
}
}
我在做什么错?
添加您在适配器上使用的代码。 – madlymad 2013-03-14 09:33:10