在Xamarin中,我有一个ListView
适配器,其中包含以下GetView
方法:
public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = items[position];
View view = convertView;
if (view == null)
view = context.LayoutInflater.Inflate(Resource.Layout.MapLocationDetail, null);
view.FindViewById<TextView>(Resource.Id.TextViewMapHeading).Text = item.Heading;
view.FindViewById<TextView> (Resource.Id.TextViewDescription).Text = item.SubHeading;
view.FindViewById<ImageView>(Resource.Id.Image).SetImageResource(item.ImageResourceId);
return view;
}
在ListView section header
的所需位置添加默认ListView
的过程是什么?
这是在GetView
方法或其他地方完成的吗?此外,是否有用于默认节标题的内置布局?
提前致谢
答案 0 :(得分:0)
与Xamarin.iOS不同,没有一个方便的方法可以覆盖节标题。
您需要做的是在常规视图单元格中包含您的剖面视图。默认情况下,您希望将此部分视图的可见性设置为“已消失”。在GetView方法中,您可以检测到您是否在该部分的开头。如果是,则将该部分视图的可见性设置为“可见”,并设置所需的任何文本。
这是一个小代码示例:
var headerTextView = view.FindViewById (Resource.Id.parentDirectoryHeader) as TextView;
if (position != 0) {
view.FindViewById (Resource.Id.parentDirectoryHeader).Visibility = ViewStates.Visible;
} else {
view.FindViewById (Resource.Id.parentDirectoryHeader).Visibility = ViewStates.Gone;
}