public MvxHorizontalGridView(Context context, IAttributeSet attrs, int defStyle, IMvxRecyclerAdapter adapter) : base(context, attrs, defStyle) { // Note: Any calling derived class passing a null adapter is responsible for setting // it's own itemTemplateId if (adapter == null) return; var itemTemplateId = MvxAttributeHelpers.ReadListItemTemplateId(context, attrs); adapter.ItemTemplateId = itemTemplateId; Adapter = adapter; var typedArray = context.ObtainStyledAttributes(attrs, Resource.Styleable.MvxHorizontalGridView); try { FocusFirstChildOnLaidOut = typedArray.GetBoolean(Resource.Styleable.MvxHorizontalGridView_FocusFirstChildOnLaidOut, false); if (FocusFirstChildOnLaidOut) { SetOnChildLaidOutListener(new MvxFocusFirstChildOnChildLaidOutListener()); } } finally { typedArray.Recycle(); } // We need this listener to get information about the currently _selected_ item // Overriding setter of base.SelectedPosition is not enough! OnChildViewHolderSelectedListener = new MvxOnChildViewHolderSelectedListener(); SetOnChildViewHolderSelectedListener(OnChildViewHolderSelectedListener); }
public MvxHorizontalGridView(Context context, IAttributeSet attrs, int defStyle, IMvxRecyclerAdapter adapter) : base(context, attrs, defStyle) { // Note: Any calling derived class passing a null adapter is responsible for setting // it's own itemTemplateId if (adapter == null) return; var itemTemplateId = MvxAttributeHelpers.ReadListItemTemplateId(context, attrs); adapter.ItemTemplateId = itemTemplateId; Adapter = adapter; // We need this listener to get information about the currently _selected_ item OnChildViewHolderSelectedListener = new MvxOnChildViewHolderSelectedListener(); SetOnChildViewHolderSelectedListener(OnChildViewHolderSelectedListener); }
protected override void Dispose(bool disposing) { if (disposing) { if (OnChildViewHolderSelectedListener != null) { OnChildViewHolderSelectedListener.Dispose(); OnChildViewHolderSelectedListener = null; } } base.Dispose(disposing); }