Ejemplo n.º 1
0
        public bool OnNavigationItemSelected(IMenuItem item)
        {
            if (Element == null || IsDisposed)
            {
                return(false);
            }

            var id = item.ItemId;

            if (id == BottomNavigationViewUtils.MoreTabId)
            {
                var items             = CreateTabList();
                var bottomSheetDialog = BottomNavigationViewUtils.CreateMoreBottomSheet(OnMoreItemSelected, Element.FindMauiContext(), items, _bottomNavigationView.MaxItemCount);
                bottomSheetDialog.DismissEvent += OnMoreSheetDismissed;
                bottomSheetDialog.Show();
            }
            else
            {
                if (_bottomNavigationView.SelectedItemId != item.ItemId && Element.Children.Count > item.ItemId)
                {
                    Element.CurrentPage = Element.Children[item.ItemId];
                }
            }
            return(true);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.layout_bottomnavigation);

            mToolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            if (null != mToolbar)
            {
                SetSupportActionBar(mToolbar);
                SupportActionBar.SetDisplayHomeAsUpEnabled(false);
                SupportActionBar.SetHomeButtonEnabled(false);
            }

            mBottomNav = FindViewById <BottomNavigationView>(Resource.Id.bottom_navigation);
            mBottomNav.NavigationItemSelected += OnNavigationItemSelected;
            BottomNavigationViewUtils.SetShiftMode(mBottomNav, false, false);

            mViewPager = FindViewById <ViewPager>(Resource.Id.viewpager);
            var adapter = new ViewPagerAdapter(this.SupportFragmentManager);
            var random  = new Random();

            adapter.AddFragment(new BottomNavFragment(random.Next(10, 20)));
            adapter.AddFragment(new BottomNavFragment(random.Next(10, 30)));
            adapter.AddFragment(new BottomNavFragment(random.Next(10, 40)));
            adapter.AddFragment(new BottomNavFragment(random.Next(10, 50)));
            mViewPager.Adapter = adapter;

            mViewPager.PageSelected += OnViewPagerChanged;

            mBottomNav.SelectedItemId = Resource.Id.one;
            mToolbar.Title            = GetText(Resource.String.one);
            mViewPager.CurrentItem    = 0;
        }
Ejemplo n.º 3
0
            bool NavigationBarView.IOnItemSelectedListener.OnNavigationItemSelected(IMenuItem item)
            {
                if (_tabbedPageManager.Element == null)
                {
                    return(false);
                }

                var id = item.ItemId;

                if (id == BottomNavigationViewUtils.MoreTabId)
                {
                    var items             = _tabbedPageManager.CreateTabList();
                    var bottomSheetDialog = BottomNavigationViewUtils.CreateMoreBottomSheet(_tabbedPageManager.OnMoreItemSelected, _tabbedPageManager.Element.FindMauiContext(), items, _tabbedPageManager._bottomNavigationView.MaxItemCount);
                    bottomSheetDialog.DismissEvent += _tabbedPageManager.OnMoreSheetDismissed;
                    bottomSheetDialog.Show();
                }
                else
                {
                    if (_tabbedPageManager._bottomNavigationView.SelectedItemId != item.ItemId && _tabbedPageManager.Element.Children.Count > item.ItemId)
                    {
                        _tabbedPageManager.Element.CurrentPage = _tabbedPageManager.Element.Children[item.ItemId];
                    }
                }

                return(true);
            }
Ejemplo n.º 4
0
        protected virtual bool OnItemSelected(IMenuItem item)
        {
            var id = item.ItemId;

            if (id == MoreTabId)
            {
                var items = CreateTabList(ShellItem);
                _bottomSheetDialog = BottomNavigationViewUtils.CreateMoreBottomSheet(OnMoreItemSelected, MauiContext, items, _bottomView.MaxItemCount);
                _bottomSheetDialog.Show();
                _bottomSheetDialog.DismissEvent += OnMoreSheetDismissed;
            }
            else
            {
                var shellSection = ((IShellItemController)ShellItem).GetItems()[id];
                if (item.IsChecked)
                {
                    OnTabReselected(shellSection);
                }
                else
                {
                    return(ChangeSection(shellSection));
                }
            }

            return(true);
        }
Ejemplo n.º 5
0
        protected override void OnAttached()
        {
            if (!(Container.GetChildAt(0) is ViewGroup layout))
            {
                return;
            }

            if (!(layout.GetChildAt(1) is BottomNavigationView bottomNavigationView))
            {
                return;
            }

            // This is what we set to adjust if the shifting happens
            BottomNavigationViewUtils.SetShiftMode(bottomNavigationView, false, false);
        }
Ejemplo n.º 6
0
        void SetupBottomNavigationView(NotifyCollectionChangedEventArgs e)
        {
            var currentIndex = Element.Children.IndexOf(Element.CurrentPage);
            var items        = CreateTabList();

            BottomNavigationViewUtils.SetupMenu(
                _bottomNavigationView.Menu,
                _bottomNavigationView.MaxItemCount,
                items,
                currentIndex,
                _bottomNavigationView,
                Element.FindMauiContext());

            if (Element.CurrentPage == null && Element.Children.Count > 0)
            {
                Element.CurrentPage = Element.Children[0];
            }
        }
Ejemplo n.º 7
0
        protected virtual void SetupMenu(IMenu menu, int maxBottomItems, ShellItem shellItem)
        {
            if (DisplayedPage == null)
            {
                return;
            }

            if (ShellItemController.ShowTabs)
            {
                _menuSetup = true;
                var currentIndex = ((IShellItemController)ShellItem).GetItems().IndexOf(ShellSection);
                var items        = CreateTabList(shellItem);

                BottomNavigationViewUtils.SetupMenu(
                    menu,
                    maxBottomItems,
                    items,
                    currentIndex,
                    _bottomView,
                    MauiContext);
            }

            UpdateTabBarVisibility();
        }
Ejemplo n.º 8
0
 protected virtual Drawable CreateItemBackgroundDrawable()
 {
     return(BottomNavigationViewUtils.CreateItemBackgroundDrawable());
 }