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(); }
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; } }