Липкая метка (заголовок) списка в формах Xamarin

Как создать липкий заголовок в виде списка в кроссплатформенном Xamarin? У меня есть список отсортированных объектов, и я хочу создать липкий заголовок при прокрутке.

1 ответ

Решение

Для этого есть код GitHub, который вы можете найти здесь

Для iOS это нативное поведение

И Android Renderer ниже:

public class CustomListViewRenderer : ViewRenderer<CustomListView, Android.Views.View>
{
    Dictionary<string, int> mapIndex;
    StickyListHeadersListView SlistView;

    protected override void OnElementChanged(ElementChangedEventArgs<CustomListView> e)
    {
        base.OnElementChanged(e);
        LayoutInflater inflater = (LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService);

        Android.Views.View v = inflater.Inflate(Resource.Layout.customListView, null, false);

        //this.AddView(v);

        if (Control == null)
        {
            SlistView = v.FindViewById<StickyListHeadersListView>(Resource.Id.list_employee);
            SetNativeControl(v);

        }
        if (e.OldElement != null)
        {
            // unsubscribe
            //Control.ItemClick -= OnItemClick;
        }

        if (e.NewElement != null)
        {
            // subscribe
            SlistView.Adapter = new CustomListViewAdapter(Forms.Context as Android.App.Activity, e.NewElement as CustomListView);
        }
    }

    protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
    {
        //base.OnElementPropertyChanged(sender, e);
    }

    void OnItemClick(object sender, Android.Widget.AdapterView.ItemClickEventArgs e)
    {
        //((CustomListView)Element).NotifyItemSelected(((CustomListView)Element).Items.ToList()[e.Position - 1]);
    }
}

Goodluck в случае возникновения проблем, не стесняйтесь вернуться.

Другие вопросы по тегам