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

            FormsViewPager pager = _viewPager;
            TabLayout      tabs  = _tabLayout;

            ((FormsFragmentPagerAdapter <Page>)pager.Adapter).CountOverride = Element.Children.Count;

            pager.Adapter.NotifyDataSetChanged();

            if (Element.Children.Count == 0)
            {
                tabs.RemoveAllTabs();
                tabs.SetupWithViewPager(null);
            }
            else
            {
                tabs.SetupWithViewPager(pager);
                UpdateTabIcons();
                tabs.SetOnTabSelectedListener(this);
            }

            UpdateIgnoreContainerAreas();
        }
示例#2
0
        protected override void Refresh()
        {
            var manager      = GetCollectionViewManager();
            var selectedItem = _tabLayout.GetBindingMemberValue(AttachedMembersDesign.TabLayout.SelectedItem);

            if (manager == null)
            {
                _tabLayout.RemoveAllTabs();
            }
            else
            {
                manager.Clear(_tabLayout);
            }
            IEnumerable itemsSource = ItemsSource;

            if (itemsSource == null)
            {
                return;
            }
            int count = itemsSource.Count();

            for (int index = 0; index < count; index++)
            {
                var item = GetItem(index);
                var tab  = CreateTab(item);
                if (manager == null)
                {
                    _tabLayout.AddTab(tab, index, ReferenceEquals(selectedItem, item));
                }
                else
                {
                    manager.Insert(_tabLayout, index, tab);
                }
            }
        }
示例#3
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();
            }
        }
示例#4
0
        void OnChildrenCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            e.Apply((o, i, c) => SetupPage((Page)o), (o, i) => TeardownPage((Page)o), Reset);

            if (IsBottomTabPlacement)
            {
                FormsViewPager       pager = _viewPager;
                BottomNavigationView bottomNavigationView = _bottomNavigationView;

                ((FormsFragmentPagerAdapter <Page>)pager.Adapter).CountOverride = Element.Children.Count;

                pager.Adapter.NotifyDataSetChanged();

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

                UpdateIgnoreContainerAreas();
            }
            else
            {
                FormsViewPager pager = _viewPager;
                TabLayout      tabs  = _tabLayout;

                ((FormsFragmentPagerAdapter <Page>)pager.Adapter).CountOverride = Element.Children.Count;
                pager.Adapter.NotifyDataSetChanged();
                if (Element.Children.Count == 0)
                {
                    tabs.RemoveAllTabs();
                    tabs.SetupWithViewPager(null);
                }
                else
                {
                    tabs.SetupWithViewPager(pager);
                    UpdateTabIcons();
#pragma warning disable CS0618 // Type or member is obsolete
                    tabs.AddOnTabSelectedListener(this);
#pragma warning restore CS0618 // Type or member is obsolete
                }

                UpdateIgnoreContainerAreas();
            }
        }
示例#5
0
        public override void OnDestroyView()
        {
            base.OnDestroyView();
            Browse.instance = null;
            FolderBrowse.instance = null;
            YoutubeSearch.instances = null;

            adapter?.Dispose();

            TabLayout tabs = Activity.FindViewById<TabLayout>(Resource.Id.tabs);
            tabs.RemoveAllTabs();
            tabs.Visibility = ViewStates.Gone;

            ((AppBarLayout.LayoutParams)Activity.FindViewById<CollapsingToolbarLayout>(Resource.Id.collapsingToolbar).LayoutParameters).ScrollFlags = 0;

            instance = null;
        }
示例#6
0
        private void InitializeAdapter()
        {
            TabLayout tabLayout = FindViewById <TabLayout>(Resource.Id.tab_layout);

            tabLayout.RemoveAllTabs();
            tabLayout.AddTab(tabLayout.NewTab().SetText("My Networks"));
            tabLayout.AddTab(tabLayout.NewTab().SetText("Information"));
            tabLayout.TabGravity = TabLayout.GravityFill;

            ViewPager    viewPager = FindViewById <ViewPager>(Resource.Id.pager);
            PagerAdapter adapter   = new MainPagerAdapter(SupportFragmentManager, tabLayout.TabCount);

            viewPager.Adapter = adapter;
            viewPager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
            tabLayout.TabSelected += delegate(object sender, TabLayout.TabSelectedEventArgs e)
            {
                viewPager.CurrentItem = e.Tab.Position;
            };
        }
        void OnChildrenCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            FormsViewPager pager = _viewPager;
            TabLayout      tabs  = _tabLayout;

            ((FormsFragmentPagerAdapter <Page>)pager.Adapter).CountOverride = Element.Children.Count;
            pager.Adapter.NotifyDataSetChanged();

            if (Element.Children.Count == 0)
            {
                tabs.RemoveAllTabs();
            }
            else
            {
                tabs.SetupWithViewPager(pager);
                UpdateTabIcons();
                tabs.TabSelected += _tabLayout_TabSelected;
            }

            UpdateIgnoreContainerAreas();
        }
示例#8
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            System.Console.WriteLine("&Pager view created");

            View view = inflater.Inflate(Resource.Layout.ViewPager, container, false);
            TabLayout tabs = Activity.FindViewById<TabLayout>(Resource.Id.tabs);
            ViewPager pager = view.FindViewById<ViewPager>(Resource.Id.pager);

            ((AppBarLayout.LayoutParams)Activity.FindViewById<CollapsingToolbarLayout>(Resource.Id.collapsingToolbar).LayoutParameters).ScrollFlags = AppBarLayout.LayoutParams.ScrollFlagScroll | AppBarLayout.LayoutParams.ScrollFlagEnterAlways | AppBarLayout.LayoutParams.ScrollFlagSnap;
            tabs.Visibility = ViewStates.Visible;
            tabs.RemoveAllTabs();

            if (type == 0)
            {
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.songs)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.folders)));

                adapter = new ViewPagerAdapter(ChildFragmentManager);
                adapter.AddFragment(Browse.NewInstance(), Resources.GetString(Resource.String.songs));
                adapter.AddFragment(FolderBrowse.NewInstance(), Resources.GetString(Resource.String.folders));

                pager.Adapter = adapter;
                pager.AddOnPageChangeListener(this);
                pager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));

                tabs.SetupWithViewPager(pager);
                tabs.TabReselected += OnTabReselected;

                pager.CurrentItem = pos;
                tabs.TabMode = TabLayout.ModeFixed;
                tabs.SetScrollPosition(pos, 0f, true);
            }
            else if (type == 1)
            {
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.all)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.songs)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.playlists)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.lives)));
                tabs.AddTab(tabs.NewTab().SetText(Resources.GetString(Resource.String.channels)));

                ViewPagerAdapter adapter = new ViewPagerAdapter(ChildFragmentManager);
                Fragment[] fragment = YoutubeSearch.NewInstances(query);
                adapter.AddFragment(fragment[0], Resources.GetString(Resource.String.all));
                adapter.AddFragment(fragment[1], Resources.GetString(Resource.String.songs));
                adapter.AddFragment(fragment[2], Resources.GetString(Resource.String.playlists));
                adapter.AddFragment(fragment[3], Resources.GetString(Resource.String.lives));
                adapter.AddFragment(fragment[4], Resources.GetString(Resource.String.channels));

                pager.Adapter = adapter;
                pager.AddOnPageChangeListener(this);
                pager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));
                tabs.SetupWithViewPager(pager);
                tabs.TabReselected += OnTabReselected;

                pager.CurrentItem = pos;
                tabs.TabMode = TabLayout.ModeScrollable;
                tabs.SetScrollPosition(pos, 0f, true);

                YoutubeSearch.instances[pos].IsFocused = true;
                YoutubeSearch.instances[pos].OnFocus();
                MainActivity.instance.FindViewById<TabLayout>(Resource.Id.tabs).Visibility = ViewStates.Visible;

                IMenuItem searchItem = MainActivity.instance.menu.FindItem(Resource.Id.search);
                SearchView searchView = (SearchView)searchItem.ActionView;
                searchView.Focusable = false;
                searchItem.ExpandActionView();
                searchView.SetQuery(query, false);
                searchView.ClearFocus();
                searchView.Focusable = true;
            }
            return view;
        }