0

在 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方法中完成的,还是在其他地方完成的?此外,是否有用于默认节标题的内置布局?

提前致谢

4

1 回答 1

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;
}
于 2014-06-01T18:15:39.353 回答