Липкая метка (заголовок) списка в формах Xamarin - PullRequest
0 голосов
/ 07 февраля 2019

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

1 Ответ

0 голосов
/ 07 февраля 2019

Для этого есть код 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, если возникнут проблемы, смело возвращайтесь.

...