/// <summary> /// Initializes a new instance of the <see cref="ItemsSourceAdapter" /> class. /// </summary> public ItemsSourceRecyclerAdapter([NotNull] global::Android.Support.V7.Widget.RecyclerView recyclerView) { Should.NotBeNull(recyclerView, "recyclerView"); _recyclerView = recyclerView; _itemTemplateProvider = new DataTemplateProvider(_recyclerView, AttachedMemberConstants.ItemTemplate, AttachedMemberConstants.ItemTemplateSelector); _layoutInflater = _recyclerView.Context.GetBindableLayoutInflater(); _weakHandler = ReflectionExtensions.MakeWeakCollectionChangedHandler(this, (adapter, o, arg3) => adapter.OnCollectionChanged(o, arg3)); var activityView = _recyclerView.Context.GetActivity() as IActivityView; if (activityView != null) { _listener = ReflectionExtensions.CreateWeakEventHandler<ItemsSourceRecyclerAdapter, EventArgs>(this, (adapter, o, arg3) => adapter.ActivityViewOnDestroyed((Activity)o)); activityView.Mediator.Destroyed += _listener.Handle; } }
/// <summary> /// Initializes a new instance of the <see cref="ItemsSourceAdapter" /> class. /// </summary> public ItemsSourceAdapter([NotNull] object container, Context context, bool listenCollectionChanges, string dropDownItemTemplateSelectorName = null, string itemTemplateSelectorName = AttachedMemberConstants.ItemTemplateSelector, string dropDownItemTemplateIdName = null, string itemTemplateIdName = AttachedMemberConstants.ItemTemplate) { Should.NotBeNull(container, "container"); _container = container; _itemTemplateProvider = new DataTemplateProvider(container, itemTemplateIdName, itemTemplateSelectorName); _dropDownTemplateProvider = new DataTemplateProvider(container, dropDownItemTemplateIdName ?? AttachedMembers.AdapterView.DropDownItemTemplate, dropDownItemTemplateSelectorName ?? AttachedMembers.AdapterView.DropDownItemTemplateSelector); _layoutInflater = context.GetBindableLayoutInflater(); if (listenCollectionChanges) _weakHandler = ReflectionExtensions.MakeWeakCollectionChangedHandler(this, (adapter, o, arg3) => adapter.OnCollectionChanged(o, arg3)); var activityView = context.GetActivity() as IActivityView; if (activityView != null) { _listener = ReflectionExtensions.CreateWeakEventHandler<ItemsSourceAdapter, EventArgs>(this, (adapter, o, arg3) => adapter.ActivityViewOnDestroyed((Activity)o)); activityView.Mediator.Destroyed += _listener.Handle; } }
public ItemsSourceAdapter([NotNull] object container, Context context, bool listenCollectionChanges, string dropDownItemTemplateSelectorName = null, string itemTemplateSelectorName = null, string dropDownItemTemplateName = null, string itemTemplateName = null) { Should.NotBeNull(container, "container"); _container = container; container.TryGetBindingMemberValue(AttachedMembers.Object.StableIdProvider, out _stableIdProvider); _itemTemplateProvider = new DataTemplateProvider(container, itemTemplateName ?? AttachedMemberConstants.ItemTemplate, itemTemplateSelectorName ?? AttachedMemberConstants.ItemTemplateSelector); _dropDownTemplateProvider = new DataTemplateProvider(container, dropDownItemTemplateName ?? AttachedMembers.AdapterView.DropDownItemTemplate, dropDownItemTemplateSelectorName ?? AttachedMembers.AdapterView.DropDownItemTemplateSelector); _layoutInflater = context.GetBindableLayoutInflater(); if (listenCollectionChanges) { _weakHandler = ReflectionExtensions.MakeWeakCollectionChangedHandler(this, (adapter, o, arg3) => adapter.OnCollectionChanged(o, arg3)); } var activityView = context.GetActivity() as IActivityView; if (activityView != null) { _listener = ReflectionExtensions.CreateWeakEventHandler <ItemsSourceAdapter, EventArgs>(this, (adapter, o, arg3) => adapter.ActivityViewOnDestroyed((Activity)o)); activityView.Mediator.Destroyed += _listener.Handle; } _defaultDropDownTemplate = IsSpinner() ? global::Android.Resource.Layout.SimpleDropDownItem1Line : global::Android.Resource.Layout.SimpleSpinnerDropDownItem; var absListView = container as AdapterView; if (absListView != null) { var member = BindingServiceProvider.MemberProvider.GetBindingMember(absListView.GetType(), AttachedMembers.ViewGroup.DisableHierarchyListener, false, false); if (member.CanWrite) { member.SetSingleValue(absListView, Empty.TrueObject); } } }
public ItemsSourceAdapter([NotNull] object container, Context context, bool listenCollectionChanges, string dropDownItemTemplateSelectorName = null, string itemTemplateSelectorName = null, string dropDownItemTemplateName = null, string itemTemplateName = null) { Should.NotBeNull(container, "container"); _container = container; container.TryGetBindingMemberValue(AttachedMembers.Object.StableIdProvider, out _stableIdProvider); _itemTemplateProvider = new DataTemplateProvider(container, itemTemplateName ?? AttachedMemberConstants.ItemTemplate, itemTemplateSelectorName ?? AttachedMemberConstants.ItemTemplateSelector); _dropDownTemplateProvider = new DataTemplateProvider(container, dropDownItemTemplateName ?? AttachedMembers.AdapterView.DropDownItemTemplate, dropDownItemTemplateSelectorName ?? AttachedMembers.AdapterView.DropDownItemTemplateSelector); _layoutInflater = context.GetBindableLayoutInflater(); if (listenCollectionChanges) _weakHandler = ReflectionExtensions.MakeWeakCollectionChangedHandler(this, (adapter, o, arg3) => adapter.OnCollectionChanged(o, arg3)); var activityView = context.GetActivity() as IActivityView; if (activityView != null) { _listener = ReflectionExtensions.CreateWeakEventHandler<ItemsSourceAdapter, EventArgs>(this, (adapter, o, arg3) => adapter.ActivityViewOnDestroyed((Activity)o)); activityView.Mediator.Destroyed += _listener.Handle; } _defaultDropDownTemplate = IsSpinner() ? global::Android.Resource.Layout.SimpleDropDownItem1Line : global::Android.Resource.Layout.SimpleSpinnerDropDownItem; var absListView = container as AdapterView; if (absListView != null) { var member = BindingServiceProvider.MemberProvider.GetBindingMember(absListView.GetType(), AttachedMembers.ViewGroup.DisableHierarchyListener, false, false); if (member.CanWrite) member.SetSingleValue(absListView, Empty.TrueObject); } }
/// <summary> /// Initializes a new instance of the <see cref="ListItem" /> class. /// </summary> public ListItem(int templateId, BindableLayoutInflater inflater) : base(inflater.Context) { _templateId = templateId; inflater.Inflate(templateId, this, true); }
/// <summary> /// Initializes a new instance of the <see cref="BindableLayoutInflaterProxy" /> class. /// </summary> public BindableLayoutInflaterProxy(BindableLayoutInflater layoutInflater) : base(layoutInflater.ViewFactory, layoutInflater.Context) { _layoutInflater = layoutInflater; }
public BindableLayoutInflaterProxy(BindableLayoutInflater layoutInflater) : base(layoutInflater.ViewFactory, layoutInflater.Context) { _layoutInflater = layoutInflater; }
public override void OnDetachedFromRecyclerView(global::Android.Support.V7.Widget.RecyclerView recyclerView) { var activityView = recyclerView.Context.GetActivity() as IActivityView; if (activityView != null) activityView.Mediator.Destroyed -= _listener.Handle; _layoutInflater = null; _itemTemplateProvider = null; _recyclerView = null; _createViewHolderDelegate = null; base.OnDetachedFromRecyclerView(recyclerView); }
public override void OnAttachedToRecyclerView(global::Android.Support.V7.Widget.RecyclerView recyclerView) { _recyclerView = recyclerView; _itemTemplateProvider = new DataTemplateProvider(_recyclerView, AttachedMemberConstants.ItemTemplate, AttachedMemberConstants.ItemTemplateSelector); _layoutInflater = _recyclerView.Context.GetBindableLayoutInflater(); _createViewHolderDelegate = _recyclerView.GetBindingMemberValue(AttachedMembersRecyclerView.RecyclerView.CreateViewHolderDelegate); HasStableIds = recyclerView.TryGetBindingMemberValue(AttachedMembers.Object.StableIdProvider, out _stableIdProvider) && _stableIdProvider != null; var activityView = _recyclerView.Context.GetActivity() as IActivityView; if (activityView != null) { if (_listener == null) _listener = ReflectionExtensions.CreateWeakEventHandler<ItemsSourceRecyclerAdapter, EventArgs>(this, (adapter, o, arg3) => adapter.ActivityViewOnDestroyed((Activity)o)); activityView.Mediator.Destroyed += _listener.Handle; } //To prevent HasStableIds error. if (_observers != null) { foreach (var observer in _observers) base.RegisterAdapterDataObserver(observer); _observers = null; } var member = BindingServiceProvider.MemberProvider.GetBindingMember(_recyclerView.GetType(), AttachedMembers.ViewGroup.DisableHierarchyListener, false, false); if (member.CanWrite) member.SetSingleValue(_recyclerView, Empty.TrueObject); base.OnAttachedToRecyclerView(recyclerView); }