示例#1
0
 private void DestroyBasic()
 {
     try
     {
         TabLayout                = null !;
         ViewPager                = null !;
         AppBarLayout             = null !;
         HashRecyclerView         = null !;
         Toolbar                  = null !;
         SearchText               = null !;
         OffsetUser               = "";
         OffsetPage               = "";
         OffsetGroup              = "";
         DataKey                  = "";
         SearchText               = "";
         UserTab                  = null !;
         PagesTab                 = null !;
         GroupsTab                = null !;
         FloatingActionButtonView = null !;
     }
     catch (Exception e)
     {
         Methods.DisplayReportResultTrack(e);
     }
 }
示例#2
0
        void Destroy()
        {
            if (_rootView != null)
            {
                UnhookEvents();

                //_viewPager.RemoveOnPageChangeListener(this);
                var adapter = _viewPager.Adapter;
                _viewPager.Adapter = null;
                adapter.Dispose();

                _tablayout.LayoutChange -= OnTabLayoutChange;
                _toolbarAppearanceTracker.Dispose();
                _tabLayoutAppearanceTracker.Dispose();
                _toolbarTracker.Dispose();
                _tablayout.Dispose();
                _toolbar.Dispose();
                _viewPager.Dispose();
                _rootView.Dispose();
            }

            _toolbarAppearanceTracker   = null;
            _tabLayoutAppearanceTracker = null;
            _toolbarTracker             = null;
            _tablayout = null;
            _toolbar   = null;
            _viewPager = null;
            _rootView  = null;
        }
示例#3
0
 public static void SetupWithTabLayout(
     this ViewPager2 viewPager,
     TabLayout tabLayout,
     ViewPagerWithTabLayoutAdapter adapter)
 {
     viewPager.Adapter = adapter;
     // https://developer.android.google.cn/training/animation/vp2-migration#tablayout
     new TabLayoutMediator(tabLayout, viewPager, adapter).Attach();
 }
示例#4
0
        private void SetUpViewPager(ViewPager2 viewPager)
        {
            try
            {
                EventTab      = new EventFragment();
                GoingTab      = new GoingFragment();
                InvitedTab    = new InvitedFragment();
                InterestedTab = new InterestedFragment();
                PastTab       = new PastFragment();
                MyEventTab    = new MyEventFragment();

                Adapter = new MainTabAdapter(this);

                Adapter.AddFragment(EventTab, GetText(Resource.String.Lbl_All_Events));

                switch (AppSettings.ShowEventGoing)
                {
                case true:
                    Adapter.AddFragment(GoingTab, GetText(Resource.String.Lbl_Going));
                    break;
                }

                switch (AppSettings.ShowEventInvited)
                {
                case true:
                    Adapter.AddFragment(InvitedTab, GetText(Resource.String.Lbl_Invited));
                    break;
                }

                switch (AppSettings.ShowEventInterested)
                {
                case true:
                    Adapter.AddFragment(InterestedTab, GetText(Resource.String.Lbl_Interested));
                    break;
                }

                switch (AppSettings.ShowEventPast)
                {
                case true:
                    Adapter.AddFragment(PastTab, GetText(Resource.String.Lbl_Past));
                    break;
                }

                Adapter.AddFragment(MyEventTab, GetText(Resource.String.Lbl_My_Events));

                viewPager.CurrentItem        = Adapter.ItemCount;
                viewPager.OffscreenPageLimit = Adapter.ItemCount;

                viewPager.Orientation = ViewPager2.OrientationHorizontal;
                viewPager.Adapter     = Adapter;
                viewPager.Adapter.NotifyDataSetChanged();
            }
            catch (Exception exception)
            {
                Methods.DisplayReportResultTrack(exception);
            }
        }
示例#5
0
 public TabbedPageManager(IMauiContext context)
 {
     _context = context;
     NavigationRootManager = _context.GetNavigationRootManager();
     _listeners            = new Listeners(this);
     _viewPager            = new ViewPager2(context.Context)
     {
         OverScrollMode   = OverScrollMode.Never,
         LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent)
     };
 }
示例#6
0
        private void SetUpViewPager(ViewPager2 viewPager)
        {
            try
            {
                LastChatTab  = new LastChatFragment();
                LastCallsTab = new LastCallsFragment();

                Adapter = new MainTabAdapter(this);
                switch (AppSettings.LastChatSystem)
                {
                case SystemApiGetLastChat.New:
                    Adapter.AddFragment(LastChatTab, GetText(Resource.String.Lbl_Tab_Chats));
                    break;

                case SystemApiGetLastChat.Old:
                {
                    LastGroupChatsTab = new LastGroupChatsFragment();
                    LastPageChatsTab  = new LastPageChatsFragment();

                    Adapter.AddFragment(LastChatTab, GetText(Resource.String.Lbl_Tab_Chats));
                    if (AppSettings.EnableChatGroup)
                    {
                        Adapter.AddFragment(LastGroupChatsTab, GetText(Resource.String.Lbl_Tab_GroupChats));
                    }

                    if (AppSettings.EnableChatPage)
                    {
                        Adapter.AddFragment(LastPageChatsTab, GetText(Resource.String.Lbl_Tab_PageChats));
                    }

                    break;
                }
                }

                if (AppSettings.EnableAudioVideoCall)
                {
                    Adapter.AddFragment(LastCallsTab, GetText(Resource.String.Lbl_Tab_Calls));
                }

                viewPager.CurrentItem        = Adapter.ItemCount;
                viewPager.OffscreenPageLimit = Adapter.ItemCount;

                viewPager.Orientation = ViewPager2.OrientationHorizontal;
                viewPager.Adapter     = Adapter;
                viewPager.Adapter.NotifyDataSetChanged();

                viewPager.RegisterOnPageChangeCallback(new MyOnPageChangeCallback(this));
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
示例#7
0
        private void Initialize()
        {
            _viewPager = new ViewPager2(this.Context)
            {
                OffscreenPageLimit = 3,
                LayoutParameters   = new FrameLayout.LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent)
            };

            _viewPager.RegisterOnPageChangeCallback(new PageChangeCallback(this));

            base.AddView(_viewPager);
        }
示例#8
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            _viewPager            = FindViewById <ViewPager2>(Resource.Id.viewPager);
            _bottomNavigationView = FindViewById <BottomNavigationView>(Resource.Id.bottomNavigationView);
            _tabLayout            = FindViewById <TabLayout>(Resource.Id.tabLayout1);

            InitViewPager();
            InitTabLayout();
        }
示例#9
0
 public RecyclerViewOnItemTouch(RecyclerView recyclerView, ViewPager2 viewPager)
 {
     try
     {
         RecyclerView = recyclerView;
         ViewPager    = viewPager;
     }
     catch (Exception e)
     {
         Methods.DisplayReportResultTrack(e);
     }
 }
示例#10
0
        private void Initialize()
        {
            _viewPager = new ViewPager2(Context)
            {
                OffscreenPageLimit = 1, // This means how many on either side, so 1 is actually 2 total offscreen views
                LayoutParameters   = new ViewGroup.LayoutParams(
                    ViewGroup.LayoutParams.MatchParent,
                    ViewGroup.LayoutParams.MatchParent)
            };
            _viewPager.RegisterOnPageChangeCallback(new PageChangeCallback(this));

            base.AddView(_viewPager);
        }
示例#11
0
        void OnChildrenCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            e.Apply((o, i, c) => SetupPage((Page)o), (o, i) => TeardownPage((Page)o), Reset);

            ViewPager2 pager   = _viewPager;
            var        adapter = (MultiPageFragmentStateAdapter <Page>)pager.Adapter;

            adapter.CountOverride = Element.Children.Count;
            if (IsBottomTabPlacement)
            {
                BottomNavigationView bottomNavigationView = _bottomNavigationView;

                adapter.NotifyDataSetChanged();

                if (Element.Children.Count == 0)
                {
                    bottomNavigationView.Menu.Clear();
                }
                else
                {
                    SetupBottomNavigationView(e);
                    bottomNavigationView.SetOnItemSelectedListener(_listeners);
                }

                UpdateIgnoreContainerAreas();
            }
            else
            {
                TabLayout tabs = _tabLayout;

                adapter.NotifyDataSetChanged();
                if (Element.Children.Count == 0)
                {
                    tabs.RemoveAllTabs();
                    tabs.SetupWithViewPager(null);
                }
                else
                {
                    new TabLayoutMediator(tabs, _viewPager, _listeners)
                    .Attach();

                    UpdateTabIcons();
#pragma warning disable CS0618 // Type or member is obsolete
                    tabs.AddOnTabSelectedListener(_listeners);
#pragma warning restore CS0618 // Type or member is obsolete
                }

                UpdateIgnoreContainerAreas();
            }
        }
示例#12
0
 private void DestroyBasic()
 {
     try
     {
         ViewPager    = null !;
         TabLayout    = null !;
         ActionButton = null !;
         ToolBar      = null !;
         Instance     = null !;
     }
     catch (Exception e)
     {
         Methods.DisplayReportResultTrack(e);
     }
 }
示例#13
0
        private void InitComponent()
        {
            try
            {
                ViewPager = FindViewById <ViewPager2>(Resource.Id.viewpager);
                TabLayout = FindViewById <TabLayout>(Resource.Id.tabs);

                SetUpViewPager(ViewPager);
                new TabLayoutMediator(TabLayout, ViewPager, this).Attach();
                TabLayout.SetTabTextColors(AppSettings.SetTabDarkTheme ? Color.White : Color.Black, Color.ParseColor(AppSettings.MainColor));
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
示例#14
0
        private void InitComponent()
        {
            try
            {
                TabLayout = FindViewById <TabLayout>(Resource.Id.Searchtabs);
                ViewPager = FindViewById <ViewPager2>(Resource.Id.Searchviewpager);

                AppBarLayout = FindViewById <AppBarLayout>(Resource.Id.mainAppBarLayout);
                AppBarLayout.SetExpanded(true);

                HashRecyclerView = FindViewById <RecyclerView>(Resource.Id.HashRecyler);

                switch (AppSettings.ShowTrendingHashTags)
                {
                case true when ListUtils.HashTagList?.Count > 0:
                    HashTagUserAdapter = new HashtagUserAdapter(this)
                    {
                        MHashtagList = new ObservableCollection <TrendingHashtag>(ListUtils.HashTagList)
                    };
                    HashRecyclerView.SetLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.Horizontal, false));
                    HashRecyclerView.SetAdapter(HashTagUserAdapter);
                    HashTagUserAdapter.ItemClick += HashTagUserAdapterOnItemClick;

                    HashRecyclerView.Visibility = ViewStates.Visible;
                    break;

                case true:
                    HashRecyclerView.Visibility = ViewStates.Gone;
                    break;

                default:
                    HashRecyclerView.Visibility = ViewStates.Gone;
                    break;
                }

                FloatingActionButtonView = FindViewById <FloatingActionButton>(Resource.Id.floatingActionButtonView);

                ViewPager.OffscreenPageLimit = 3;
                SetUpViewPager(ViewPager);
                new TabLayoutMediator(TabLayout, ViewPager, this).Attach();
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
示例#15
0
        private void InitComponent()
        {
            try
            {
                ViewPager = FindViewById <ViewPager2>(Resource.Id.viewpager);
                TabLayout = FindViewById <TabLayout>(Resource.Id.tabs);

                FloatingActionButtonView = FindViewById <FloatingActionButton>(Resource.Id.floatingActionButtonView);

                SetUpViewPager(ViewPager);
                new TabLayoutMediator(TabLayout, ViewPager, this).Attach();
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
示例#16
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            base.OnViewCreated(view, savedInstanceState);

            var appBar = view.FindViewById <BottomAppBar>(Resource.Id.fragment_main_bottomAppBar);

            if (appBar != null)
            {
                appBar.NavigationClick += (sender, args) =>
                {
                    var fragment = new BottomNavigationDrawerFragment();
                    fragment.Show(ChildFragmentManager, fragment.Tag);
                };
            }

            var topAppBar = view.FindViewById <MaterialToolbar>(Resource.Id.fragment_main_topAppBar);

            if (topAppBar != null)
            {
                topAppBar.NavigationClick += (sender, args) =>
                {
                    _drawerLayout = Activity.FindViewById <DrawerLayout>(Resource.Id.fragment_main_drawer_layout);
                    _drawerLayout.OpenDrawer((int)GravityFlags.Start);
                };
            }

            var button = view.FindViewById <FloatingActionButton>(Resource.Id.fragment_main_add_button);

            button.Click += (sender, args) =>
            {
                var fragment = new CreateEventFragment();
                fragment.Show(ChildFragmentManager, fragment.Tag);
            };

            _tabLayout = view.FindViewById <TabLayout>(Resource.Id.fragment_main_tab_layout);

            _viewPager2         = view.FindViewById <ViewPager2>(Resource.Id.fragment_main_view_pager);
            _viewPager2.Adapter = new ViewPagerAdapter(ChildFragmentManager, Lifecycle);

            _tabLayoutMediator = new TabLayoutMediator(_tabLayout, _viewPager2, this);
            _tabLayoutMediator.Attach();
        }
示例#17
0
 private void DestroyBasic()
 {
     try
     {
         ViewPager                = null !;
         EventTab                 = null !;
         MyEventTab               = null !;
         GoingTab                 = null !;
         InterestedTab            = null !;
         InvitedTab               = null !;
         PastTab                  = null !;
         TabLayout                = null !;
         FloatingActionButtonView = null !;
         Instance                 = null !;
     }
     catch (Exception e)
     {
         Methods.DisplayReportResultTrack(e);
     }
 }
示例#18
0
        private void InitComponent()
        {
            try
            {
                ViewPager = FindViewById <ViewPager2>(Resource.Id.viewpager);
                TabLayout = FindViewById <TabLayout>(Resource.Id.tabs);

                ActionButton            = FindViewById <FloatingActionButton>(Resource.Id.floatingActionButtonView);
                ActionButton.Visibility = ViewStates.Visible;
                ActionButton.SetImageResource(Resource.Drawable.ic_add);

                ViewPager.OffscreenPageLimit = 2;
                SetUpViewPager(ViewPager);
                new TabLayoutMediator(TabLayout, ViewPager, this).Attach();
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
示例#19
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            _pageCount = Resources.GetStringArray(Resource.Array.introTitle).Length;

            _pager = FindViewById <ViewPager2>(Resource.Id.viewPager);
            _nav   = FindViewById <BottomNavigationView>(Resource.Id.navigationView);

            _nav.NavigationItemSelected += OnNavigationItemSelected;

            var callback = new PageChangeCallback();

            callback.PageSelect += delegate { OnPageSelected(); };

            _pager.RegisterOnPageChangeCallback(callback);

            _adapter       = new IntroPagerAdapter(this, _pageCount);
            _pager.Adapter = _adapter;

            OnPageSelected();
        }
示例#20
0
 private void DestroyBasic()
 {
     try
     {
         Adapter       = null !;
         ViewPager     = null !;
         TabLayout     = null !;
         AngryTab      = null !;
         HahaTab       = null !;
         LikeTab       = null !;
         LoveTab       = null !;
         SadTab        = null !;
         WowTab        = null !;
         Id            = null !;
         TypeReaction  = null !;
         CommentObject = null !;
     }
     catch (Exception e)
     {
         Methods.DisplayReportResultTrack(e);
     }
 }
示例#21
0
        private void SetUpViewPager(ViewPager2 viewPager)
        {
            try
            {
                FundingTab   = new FundingFragment();
                MyFundingTab = new MyFundingFragment();

                Adapter = new MainTabAdapter(this);
                Adapter.AddFragment(FundingTab, GetText(Resource.String.Lbl_BrowseFunding));
                Adapter.AddFragment(MyFundingTab, GetText(Resource.String.Lbl_MyFunding));

                viewPager.CurrentItem        = Adapter.ItemCount;
                viewPager.OffscreenPageLimit = Adapter.ItemCount;

                viewPager.Orientation = ViewPager2.OrientationHorizontal;
                viewPager.Adapter     = Adapter;
                viewPager.Adapter.NotifyDataSetChanged();
            }
            catch (Exception exception)
            {
                Methods.DisplayReportResultTrack(exception);
            }
        }
示例#22
0
        //public override void OnBackPressed()
        //{
        //    try
        //    {
        //        ExitHandler ??= new Handler(Looper.MainLooper);
        //        if (RecentlyBackPressed)
        //        {
        //            ExitHandler.RemoveCallbacks(() => { RecentlyBackPressed = false; });
        //            RecentlyBackPressed = false;
        //            MoveTaskToBack(true);
        //            Finish();
        //        }
        //        else
        //        {
        //            RecentlyBackPressed = true;
        //            Toast.MakeText(this, GetString(Resource.String.press_again_exit), ToastLength.Long)?.Show();
        //            ExitHandler.PostDelayed(() => { RecentlyBackPressed = false; }, 2000L);
        //        }
        //    }
        //    catch (Exception exception)
        //    {
        //        Methods.DisplayReportResultTrack(exception);
        //    }
        //}

        #endregion

        #region Functions

        private void InitComponent(View view)
        {
            try
            {
                DiscoverImageView = view.FindViewById <ImageView>(Resource.Id.discoverButton);
                SearchImageView   = view.FindViewById <ImageView>(Resource.Id.searchButton);
                MoreImageView     = view.FindViewById <ImageView>(Resource.Id.moreButton);
                TxtAppName        = view.FindViewById <TextView>(Resource.Id.appName);
                //FloatingActionFilter = FindViewById<FloatingActionButton>(Resource.Id.floatingActionFilter);

                TxtAppName.Text = GetText(Resource.String.Lbl_Tab_Chats);

                //FloatingActionButtonView = view.FindViewById<FrameLayout>(Resource.Id.FloatingAction);
                //FloatingActionImageView = view.FindViewById<ImageView>(Resource.Id.Image);
                //FloatingActionTag = "lastMessages";
                //FloatingActionButtonView.Visibility = ViewStates.Visible;
                Tabs      = view.FindViewById <TabLayout>(Resource.Id.tabsLayout);
                ViewPager = view.FindViewById <ViewPager2>(Resource.Id.viewpager);

                SetUpViewPager(ViewPager);
                new TabLayoutMediator(Tabs, ViewPager, this).Attach();

                //var tab = Tabs.GetTabAt(0); //Lbl_Tab_Chats
                ////set custom view
                //tab.SetCustomView(Resource.Layout.IconBadgeLayout);
                //TextView textView = (TextView)tab.CustomView.FindViewById(Resource.Id.text);
                //textView.Visibility = ViewStates.Gone;
                //var d = Color.ParseColor("");

                Tabs.SetTabTextColors(AppSettings.SetTabDarkTheme ? Color.White : Color.DimGray,
                                      Color.ParseColor(AppSettings.MainColor));
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
示例#23
0
        private void SetUpViewPager(ViewPager2 viewPager)
        {
            try
            {
                UserTab   = new SearchUserFragment();
                PagesTab  = new SearchPagesFragment();
                GroupsTab = new SearchGroupsFragment();

                Adapter = new MainTabAdapter(this);
                Adapter.AddFragment(UserTab, GetText(Resource.String.Lbl_Users));
                switch (AppSettings.ShowCommunitiesPages)
                {
                case true:
                    Adapter.AddFragment(PagesTab, GetText(Resource.String.Lbl_Pages));
                    break;
                }
                switch (AppSettings.ShowCommunitiesGroups)
                {
                case true:
                    Adapter.AddFragment(GroupsTab, GetText(Resource.String.Lbl_Groups));
                    break;
                }

                viewPager.CurrentItem        = Adapter.ItemCount;
                viewPager.OffscreenPageLimit = Adapter.ItemCount;

                viewPager.Orientation = ViewPager2.OrientationHorizontal;
                // viewPager.RegisterOnPageChangeCallback(new MyOnPageChangeCallback(this));
                viewPager.Adapter = Adapter;
                viewPager.Adapter.NotifyDataSetChanged();
            }
            catch (Exception exception)
            {
                Methods.DisplayReportResultTrack(exception);
            }
        }
        private void InitControls()
        {
            RegViewPager                    = FindViewById <ViewPager2>(Resource.Id.reg_viewpager1);
            progressBar                     = FindViewById <ProgressBar>(Resource.Id.cont_viewpager);
            regAdapter                      = new RegistrationFragmentsAdapter(SupportFragmentManager, Lifecycle);
            RegViewPager.Orientation        = ViewPager2.OrientationHorizontal;
            RegViewPager.OffscreenPageLimit = 4;
            RegViewPager.UserInputEnabled   = false;

            regAdapter.AddFragments(new OnboardingFragment(e1 =>
            {
                SetRegisterFrag();
            }, e2 =>
            {
                SetSignInFrag();
            }));
            regAdapter.AddFragments(SignInFragment);
            regAdapter.AddFragments(RegisterFragment);
            regAdapter.AddFragments(PartnerFragment);
            regAdapter.AddFragments(CaptureFragment);
            regAdapter.AddFragments(CarRegFragment);
            regAdapter.AddFragments(AckFragment);
            RegViewPager.Adapter = regAdapter;
        }
示例#25
0
        public override AView OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var shellSection = ShellSection;

            if (shellSection == null)
            {
                return(null);
            }

            if (shellSection.CurrentItem == null)
            {
                throw new InvalidOperationException($"Content not found for active {shellSection}. Title: {shellSection.Title}. Route: {shellSection.Route}.");
            }

            var context         = Context;
            var root            = PlatformInterop.CreateShellCoordinatorLayout(context);
            var appbar          = PlatformInterop.CreateShellAppBar(context, Resource.Attribute.appBarLayoutStyle, root);
            int actionBarHeight = context.GetActionBarHeight();

            _toolbar   = PlatformInterop.CreateShellToolbar(context, appbar, actionBarHeight, Resource.Style.ThemeOverlay_AppCompat_Light);
            _tablayout = PlatformInterop.CreateShellTabLayout(context, appbar, actionBarHeight);

            var pagerContext        = MauiContext.MakeScoped(layoutInflater: inflater, fragmentManager: ChildFragmentManager);
            var adapter             = new ShellFragmentStateAdapter(shellSection, ChildFragmentManager, pagerContext);
            var pageChangedCallback = new ViewPagerPageChanged(this);

            _viewPager = PlatformInterop.CreateShellViewPager(context, root, _tablayout, this, adapter, pageChangedCallback);

            Page currentPage  = null;
            int  currentIndex = -1;
            var  currentItem  = shellSection.CurrentItem;
            var  items        = SectionController.GetItems();

            while (currentIndex < 0 && items.Count > 0 && shellSection.CurrentItem != null)
            {
                currentItem = shellSection.CurrentItem;
                currentPage = ((IShellContentController)shellSection.CurrentItem).GetOrCreateContent();

                // current item hasn't changed
                if (currentItem == shellSection.CurrentItem)
                {
                    currentIndex = items.IndexOf(currentItem);
                }
            }

            _toolbarTracker      = _shellContext.CreateTrackerForToolbar(_toolbar);
            _toolbarTracker.Page = currentPage;

            _viewPager.CurrentItem = currentIndex;

            if (items.Count == 1)
            {
                UpdateTablayoutVisibility();
            }

            _tablayout.LayoutChange += OnTabLayoutChange;

            _tabLayoutAppearanceTracker = _shellContext.CreateTabLayoutAppearanceTracker(ShellSection);
            _toolbarAppearanceTracker   = _shellContext.CreateToolbarAppearanceTracker();

            HookEvents();

            return(_rootView = root);
        }
        public override AView OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var shellSection = ShellSection;

            if (shellSection == null)
            {
                return(null);
            }

            if (shellSection.CurrentItem == null)
            {
                throw new InvalidOperationException($"Content not found for active {shellSection}. Title: {shellSection.Title}. Route: {shellSection.Route}.");
            }

            var root = inflater.Inflate(Resource.Layout.shellrootlayout, null).JavaCast <CoordinatorLayout>();

            _toolbar = root.FindViewById <Toolbar>(Resource.Id.maui_toolbar);
            if (Context.GetActivity() is AppCompatActivity aca)
            {
                aca.SetSupportActionBar(_toolbar);
            }

            _viewPager = root.FindViewById <ViewPager2>(Resource.Id.main_viewpager);
            _tablayout = root.FindViewById <TabLayout>(Resource.Id.main_tablayout);

            //_viewPager.EnableGesture = false;

            //_viewPager.AddOnPageChangeListener(this);
            _viewPager.Id = AView.GenerateViewId();

            _viewPager.Adapter        = new ShellFragmentStateAdapter(shellSection, ChildFragmentManager, MauiContext);
            _viewPager.OverScrollMode = OverScrollMode.Never;

            new TabLayoutMediator(_tablayout, _viewPager, this)
            .Attach();

            //_tablayout.SetupWithViewPager(_viewPager);

            Page currentPage  = null;
            int  currentIndex = -1;
            var  currentItem  = ShellSection.CurrentItem;

            while (currentIndex < 0 && SectionController.GetItems().Count > 0 && ShellSection.CurrentItem != null)
            {
                currentItem = ShellSection.CurrentItem;
                currentPage = ((IShellContentController)shellSection.CurrentItem).GetOrCreateContent();

                // current item hasn't changed
                if (currentItem == shellSection.CurrentItem)
                {
                    currentIndex = SectionController.GetItems().IndexOf(currentItem);
                }
            }

            _toolbarTracker      = _shellContext.CreateTrackerForToolbar(_toolbar);
            _toolbarTracker.Page = currentPage;

            _viewPager.CurrentItem = currentIndex;

            if (SectionController.GetItems().Count == 1)
            {
                UpdateTablayoutVisibility();
            }

            _tablayout.LayoutChange += OnTabLayoutChange;

            _tabLayoutAppearanceTracker = _shellContext.CreateTabLayoutAppearanceTracker(ShellSection);
            _toolbarAppearanceTracker   = _shellContext.CreateToolbarAppearanceTracker();

            HookEvents();

            return(_rootView = root);
        }
示例#27
0
        private void SetUpViewPager(ViewPager2 viewPager)
        {
            try
            {
                CommentObject = JsonConvert.DeserializeObject <GetCommentObject>(Intent?.GetStringExtra("CommentObject") ?? "");
                if (CommentObject != null)
                {
                    Id = CommentObject.Id;

                    Adapter = new MainTabAdapter(this);

                    switch (CommentObject.Reaction.Count)
                    {
                    case > 0:
                    {
                        LikeTab  = new LikeReactionFragment();
                        LoveTab  = new LoveReactionFragment();
                        HahaTab  = new HahaReactionFragment();
                        WowTab   = new WowReactionFragment();
                        SadTab   = new SadReactionFragment();
                        AngryTab = new AngryReactionFragment();

                        Bundle args = new Bundle();
                        args.PutString("NamePage", TypeClass);

                        LikeTab  = new LikeReactionFragment();
                        LoveTab  = new LoveReactionFragment();
                        HahaTab  = new HahaReactionFragment();
                        WowTab   = new WowReactionFragment();
                        SadTab   = new SadReactionFragment();
                        AngryTab = new AngryReactionFragment();

                        LikeTab.Arguments  = args;
                        LoveTab.Arguments  = args;
                        HahaTab.Arguments  = args;
                        WowTab.Arguments   = args;
                        SadTab.Arguments   = args;
                        AngryTab.Arguments = args;

                        Adapter.AddFragment(LikeTab, GetText(Resource.String.Btn_Likes));
                        Adapter.AddFragment(LoveTab, GetText(Resource.String.Btn_Love));
                        Adapter.AddFragment(HahaTab, GetText(Resource.String.Btn_Haha));
                        Adapter.AddFragment(WowTab, GetText(Resource.String.Btn_Wow));
                        Adapter.AddFragment(SadTab, GetText(Resource.String.Btn_Sad));
                        Adapter.AddFragment(AngryTab, GetText(Resource.String.Btn_Angry));     //wael
                        break;
                    }
                    }
                    //else
                    //{
                    //    if (PostData.Reaction.Like > 0 || PostData.Reaction.Like1 > 0)
                    //    {
                    //        LikeTab = new LikeReactionFragment();
                    //        Adapter.AddFragment(LikeTab, GetText(Resource.String.Btn_Likes));
                    //    }

                    //    if (PostData.Reaction.Love > 0 || PostData.Reaction.Love2 > 0)
                    //    {
                    //        LoveTab = new LoveReactionFragment();
                    //        Adapter.AddFragment(LoveTab, GetText(Resource.String.Btn_Love));
                    //    }

                    //    if (PostData.Reaction.HaHa > 0 || PostData.Reaction.HaHa3 > 0)
                    //    {
                    //        HahaTab = new HahaReactionFragment();
                    //        Adapter.AddFragment(HahaTab, GetText(Resource.String.Btn_Haha));
                    //    }

                    //    if (PostData.Reaction.Wow > 0 || PostData.Reaction.Wow4 > 0)
                    //    {
                    //        WowTab = new WowReactionFragment();
                    //        Adapter.AddFragment(WowTab, GetText(Resource.String.Btn_Wow));
                    //    }

                    //    if (PostData.Reaction.Sad > 0 || PostData.Reaction.Sad5 > 0)
                    //    {
                    //        SadTab = new SadReactionFragment();
                    //        Adapter.AddFragment(SadTab, GetText(Resource.String.Btn_Sad));
                    //    }

                    //    if (PostData.Reaction.Angry > 0 || PostData.Reaction.Angry6 > 0)
                    //    {
                    //        AngryTab = new AngryReactionFragment();
                    //        Adapter.AddFragment(AngryTab, GetText(Resource.String.Btn_Angry));
                    //    }
                    //}

                    viewPager.CurrentItem        = Adapter.ItemCount;
                    viewPager.OffscreenPageLimit = Adapter.ItemCount;

                    viewPager.Orientation = ViewPager2.OrientationHorizontal;
                    viewPager.RegisterOnPageChangeCallback(new MyOnPageChangeCallback(this));
                    viewPager.Adapter = Adapter;
                    viewPager.Adapter.NotifyDataSetChanged();
                }
            }
            catch (Exception exception)
            {
                Methods.DisplayReportResultTrack(exception);
            }
        }