コード例 #1
0
        public void CreateTabs(IList <View> views)
        {
            _fragments = views.Select(v => new CometFragment(v, MauiContext)).ToList();
            _bottomNavigationView.Menu.Clear();

            if (views == null)
            {
                return;
            }

            for (int i = 0; i < views.Count(); i++)
            {
                var view     = views[i];
                var fragment = new CometFragment(view, MauiContext);

                var title     = view.GetEnvironment <string>(EnvironmentKeys.TabView.Title);
                var imagePath = view.GetEnvironment <string>(EnvironmentKeys.TabView.Image);

                _bottomNavigationView.Menu.Add(0, i, i, title);
            }

            var index = 0;

            (MauiContext.Context as MauiAppCompatActivity).SupportFragmentManager
            .BeginTransaction()
            .Add(Id, _fragments[index], index.ToString())
            .Show(_fragments[index])
            .Commit();
        }
コード例 #2
0
        void SetView(View view, bool animate, bool isNavigate)
        {
            var manager = FragmentManager;

            if (!isNavigate && manager.BackStackEntryCount > 0)
            {
                manager.PopBackStack(0, (int)PopBackStackFlags.Inclusive);
            }

            var fragment = new CometFragment(view);

            var transaction = manager.BeginTransaction();

            if (animate)
            {
                transaction.SetTransition((int)global::Android.App.FragmentTransit.FragmentFade);
            }
            if (isNavigate)
            {
                transaction.AddToBackStack(view.Id);
            }
            transaction.Replace(this.Id, fragment);
            transaction.CommitAllowingStateLoss();

            manager.ExecutePendingTransactions();

            if (view.BuiltView is NavigationView nav)
            {
                nav.PerformNavigate = Navigate;
            }
        }