示例#1
0
        public override void NavigatedTo()
        {
            // Why? Given usage ChildFragmentManager not to pollute activity's FragmentManager we have to
            // apply new ChildFragmentManager when navigating or else the old one would be retained while it has
            // been already detached by Android. Hence code below essentially recreates Pager state with never manager.
            if (_adapter != null)
            {
                var selectedPage =
                    _lastSelectedFragment != null && _adapter.Fragments.Contains(_lastSelectedFragment)
                    ? _adapter.Fragments.IndexOf(_lastSelectedFragment)
                    : 0;
                _adapter          = _adapter.Duplicate(ChildFragmentManager);
                ViewPager.Adapter = _adapter;
                ViewPager.SetCurrentItem(selectedPage, false);
                UpdateTabIcons();
            }

            base.NavigatedTo();
            ViewModel.NavigatedTo();
        }
示例#2
0
        protected override void InitBindings()
        {
            if (ViewModel is null)
            {
                Resolve <Logger <FeedPageFragment> >().LogError("No ViewModel on InitBindings.");
                Debugger.Break();
            }

            Bindings.Add(this.SetBinding(() => ViewModel.FeedTabEntries).WhenSourceChanges(() =>
            {
                if (ViewModel.FeedTabEntries is null)
                {
                    return;
                }

                _adapter          = new FeedPagerAdapter(ChildFragmentManager, ViewModel.FeedTabEntries, this);
                ViewPager.Adapter = _adapter;
                UpdateTabIcons();
            }));

            Bindings.Add(this.SetBinding(() => ViewModel.JumpToButtonVisibility).WhenSourceChanges(() =>
            {
                if (ViewModel.JumpToButtonVisibility)
                {
                    JumpToButton.Show();
                }
                else
                {
                    JumpToButton.Hide();
                }
            }));

            JumpToButton.SetOnClickListener(new OnClickListener(HandleJumpToPopup));
            TabStrip.SetupWithViewPager(ViewPager);
            ViewPager.PageSelected += ViewPagerOnPageSelected;
        }