protected override RecyclerView.Adapter BuildWrappedAdapter(IMvxTemplateSelector templateSelector) { var advancedRecyclerViewAdapter = new MvxNonExpandableAdapter(BindingContext); RecyclerView.Adapter adapter = advancedRecyclerViewAdapter; var itemUniqueIdProvider = MvxAdvancedRecyclerViewAttributeExtensions.BuildUniqueItemIdProvider(Context, Attrs); advancedRecyclerViewAdapter.UniqueIdProvider = itemUniqueIdProvider; advancedRecyclerViewAdapter.ItemTemplateSelector = templateSelector; AdvancedRecyclerViewAdapter = advancedRecyclerViewAdapter; bool isSwipeEnabled = MvxAdvancedRecyclerViewAttributeExtensions.IsSwipeSupported(Context, Attrs); if (isSwipeEnabled) { var swipeableTemplate = MvxAdvancedRecyclerViewAttributeExtensions.BuildSwipeableTemplate(Context, Attrs); advancedRecyclerViewAdapter.SwipeableTemplate = swipeableTemplate; _mRecyclerViewTouchActionGuardManager = new RecyclerViewTouchActionGuardManager(); _mRecyclerViewTouchActionGuardManager.SetInterceptVerticalScrollingWhileAnimationRunning(true); _mRecyclerViewTouchActionGuardManager.Enabled = true; _mRecyclerViewSwipeManager = new RecyclerViewSwipeManager(); return(_mRecyclerViewSwipeManager.CreateWrappedAdapter(advancedRecyclerViewAdapter)); } return(advancedRecyclerViewAdapter); }
protected override RecyclerView.Adapter BuildWrappedAdapter(IMvxTemplateSelector templateSelector) { bool isGroupingSupported = MvxAdvancedRecyclerViewAttributeExtensions.IsGroupingSupported(Context, Attrs); if (!isGroupingSupported) { throw new InvalidOperationException($"You are using {nameof(MvxAdvancedExpandableRecyclerView)} without using grouping attributes. Check documentation."); } expandableItemManager = new RecyclerViewExpandableItemManager(expandCollapseSavedState); var expandableAdapter = new MvxExpandableItemAdapter(BindingContext as IMvxAndroidBindingContext); expandableAdapter.TemplateSelector = templateSelector; expandableAdapter.GroupExpandController = MvxAdvancedRecyclerViewAttributeExtensions.BuildGroupExpandController(Context, Attrs); expandableItemManager.DefaultGroupsExpandedState = expandableAdapter.GroupExpandController.AreGroupsExpandedByDefault; expandableAdapter.GroupExpandController.ExpandableItemManager = expandableItemManager; AdvancedRecyclerViewAdapter = expandableAdapter; var groupedDataConverter = MvxAdvancedRecyclerViewAttributeExtensions.BuildMvxGroupedDataConverter(Context, Attrs); expandableAdapter.ExpandableDataConverter = groupedDataConverter; wrappedAdapter = expandableItemManager.CreateWrappedAdapter(expandableAdapter); return(wrappedAdapter); }
public MvxAdvancedNonExpandableRecyclerView(Android.Content.Context context, Android.Util.IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle) { AdapterController = new MvxAdvancedRecyclerViewNonExpandableAdapterController(context, attrs, this, MvxAndroidBindingContextHelpers.Current()); SetupDefaultItemAnimator(MvxAdvancedRecyclerViewAttributeExtensions.IsSwipeSupported(context, attrs)); }
protected override RecyclerView.Adapter BuildWrappedAdapter(IMvxTemplateSelector templateSelector) { bool isGroupingSupported = MvxAdvancedRecyclerViewAttributeExtensions.IsGroupingSupported(Context, Attrs); if (!isGroupingSupported) { throw new InvalidOperationException($"You are using {nameof(MvxAdvancedExpandableRecyclerView)} without using grouping attributes. Check documentation."); } expandableItemManager = new RecyclerViewExpandableItemManager(expandCollapseSavedState); var expandableAdapter = new MvxExpandableItemAdapter(BindingContext as IMvxAndroidBindingContext); expandableAdapter.TemplateSelector = templateSelector; expandableAdapter.GroupExpandController = MvxAdvancedRecyclerViewAttributeExtensions.BuildGroupExpandController(Context, Attrs); expandableItemManager.DefaultGroupsExpandedState = expandableAdapter.GroupExpandController.AreGroupsExpandedByDefault; expandableAdapter.GroupExpandController.ExpandableItemManager = expandableItemManager; AdvancedRecyclerViewAdapter = expandableAdapter; var groupedDataConverter = MvxAdvancedRecyclerViewAttributeExtensions.BuildMvxGroupedDataConverter(Context, Attrs); expandableAdapter.ExpandableDataConverter = groupedDataConverter; wrappedAdapter = expandableItemManager.CreateWrappedAdapter(expandableAdapter); bool isSwipeForExpandableSupported = MvxAdvancedRecyclerViewAttributeExtensions.IsSwipeForExpandableSupported(Context, Attrs); if (isSwipeForExpandableSupported) { if (MvxAdvancedRecyclerViewAttributeExtensions.IsGroupedSwipeSupported(Context, Attrs)) { var groupedSwipeableTemplate = MvxAdvancedRecyclerViewAttributeExtensions.BuildGroupSwipeableTemplate(Context, Attrs); expandableAdapter.GroupSwipeableTemplate = groupedSwipeableTemplate; } if (MvxAdvancedRecyclerViewAttributeExtensions.IsGroupedChildSwipeSupported(Context, Attrs)) { var childSwipeableTemplate = MvxAdvancedRecyclerViewAttributeExtensions.BuildGroupChildSwipeableTemplate(Context, Attrs); expandableAdapter.ChildSwipeableTemplate = childSwipeableTemplate; } _mRecyclerViewTouchActionGuardManager = new RecyclerViewTouchActionGuardManager(); _mRecyclerViewTouchActionGuardManager.SetInterceptVerticalScrollingWhileAnimationRunning(true); _mRecyclerViewTouchActionGuardManager.Enabled = true; _mRecyclerViewSwipeManager = new RecyclerViewSwipeManager(); return(_mRecyclerViewSwipeManager.CreateWrappedAdapter(wrappedAdapter)); } return(wrappedAdapter); }
protected virtual IMvxTemplateSelector BuildTemplateSelector() => MvxAdvancedRecyclerViewAttributeExtensions.BuildItemTemplateSelector(Context, Attrs);