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