Beispiel #1
0
        private void InitDrawer()
        {
            Messenger.Default.Register <PageTitleMessage>(this, OnNewPageTitle);
            Messenger.Default.Register <ToolbarRequestMessage>(this, OnNewToolbarRequest);

            NavigationRecyclerView.SetAdapter(
                new RecyclerViewAdapterBuilder <HamburgerMenuEntryViewModel, HamburgerEntryHolder>()
                .WithContentStretching()
                .WithItems(ViewModel.HamburgerItems)
                .WithResourceId(LayoutInflater, Resource.Layout.nav_item)
                .WithDataTemplate(HamburgerItemDataTemplate)
                .WithHolderTemplate((parent, type, view) => new HamburgerEntryHolder(view, this))
                .Build());

            var divider = new DividerItemDecoration(this, DividerItemDecoration.Vertical);

            divider.SetDrawable(Resources.GetDrawable(Resource.Drawable.separator_transparent, Theme));
            NavigationRecyclerView.AddItemDecoration(divider);
            NavigationRecyclerView.SetLayoutManager(new LinearLayoutManager(this));

            SetUpHamburgerButton();
            Toolbar.MenuItemClick += ToolbarOnMenuItemClick;

            Bindings.Add(this.SetBinding(() => ViewModel.IsDrawerEnabled).WhenSourceChanges(() =>
            {
                if (ViewModel.IsDrawerEnabled)
                {
                    DrawerLayout.SetDrawerLockMode(global::Android.Support.V4.Widget.DrawerLayout.LockModeUndefined);
                    DrawerLayout.AddDrawerListener(_hamburgerToggle);
                    _hamburgerToggle.SyncState();
                    _hamburgerButtonAdded = true;
                }
                else
                {
                    DrawerLayout.SetDrawerLockMode(global::Android.Support.V4.Widget.DrawerLayout.LockModeLockedClosed);
                    if (_hamburgerButtonAdded)
                    {
                        DrawerLayout.RemoveDrawerListener(_hamburgerToggle);
                    }
                }
            }));

            //Don't use object initializer
            _settingsButtonHolder           = new HamburgerEntryHolder(SettingsNavButton, this);
            _settingsButtonHolder.ViewModel = ViewModel.SettingsButtonViewModel;
        }
Beispiel #2
0
 private void HamburgerItemDataTemplate(HamburgerMenuEntryViewModel item, HamburgerEntryHolder holder, int position)
 {
 }