示例#1
0
        void UpdateBarTextColor()
        {
            if (_disposed || _tabLayout == null)
            {
                return;
            }

            int currentColor = _tabLayout.TabTextColors.DefaultColor;

            if (!_defaultColor.HasValue)
            {
                _defaultColor = currentColor;
            }

            Color newTextColor     = Element.BarTextColor;
            int   newTextColorArgb = newTextColor.ToAndroid().ToArgb();

            if (!newTextColor.IsDefault && currentColor != newTextColorArgb)
            {
                _tabLayout.SetTabTextColors(newTextColorArgb, newTextColorArgb);
            }
            else if (newTextColor.IsDefault && _defaultColor.HasValue && currentColor != _defaultColor)
            {
                _tabLayout.SetTabTextColors(_defaultColor.Value, _defaultColor.Value);
            }
        }
        private void SetVideoPlayerFragmentAdapters()
        {
            try
            {
                TabLayoutView = FindViewById <TabLayout>(Resource.Id.tabs);
                ViewPagerView = FindViewById <ViewPager>(Resource.Id.viewPager);

                TabAdapter = new MainTabAdapter(SupportFragmentManager);

                TabVideosComment = new VideosCommentFragment();
                TabVideosAbout   = new VideosAboutFragment();

                TabAdapter.AddFragment(TabVideosAbout, GetString(Resource.String.Lbl_About));
                TabAdapter.AddFragment(TabVideosComment, GetString(Resource.String.Lbl_Comment));

                ViewPagerView.CurrentItem        = 2;
                ViewPagerView.OffscreenPageLimit = TabAdapter.Count;
                ViewPagerView.Adapter            = TabAdapter;
                TabLayoutView.SetupWithViewPager(ViewPagerView);

                TabLayoutView.SetTabTextColors(AppSettings.SetTabDarkTheme ? Color.White : Color.Black, Color.ParseColor(AppSettings.MainColor));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
示例#3
0
        void FnInitTabLayout()
        {
            tabLayout.SetTabTextColors(Android.Graphics.Color.Aqua, Android.Graphics.Color.AntiqueWhite);
            //Fragment array
            var fragments = new Android.Support.V4.App.Fragment[]
            {
                new IconTextCallFragment(),

                new IconTextDataFragment(),
            };
            //Tab title array
            var titles = CharSequence.ArrayFromStringArray(new[] {
                GetString(Resource.String.strCall),

                GetString(Resource.String.strData),
            });
            var viewPager = FindViewById <ViewPager>(Resource.Id.viewpagerIcon);

            //viewpager holding fragment array and tab title text
            viewPager.Adapter = new TabsFragmentPagerAdapter(SupportFragmentManager, fragments, titles);

            // Give the TabLayout the ViewPager
            tabLayout.SetupWithViewPager(viewPager);
            //tabLayout.SetTabTextColors(
            FnSetIcons();
            //FnSetupTabIconsWithText ();
        }
示例#4
0
        void FnInitTabLayout()
        {
            tabLayout.SetTabTextColors(Android.Graphics.Color.Aqua, Android.Graphics.Color.AntiqueWhite);
            //Fragment array
            var fragments = new Android.Support.V4.App.Fragment[]
            {
                new BlueFragment(),
                new GreenFragment(),
                new YellowFragment(),
            };
            //Tab title array
            var titles = CharSequence.ArrayFromStringArray(new[] {
                "Blue",
                "Green",
                "Yellow",
            });

            var viewPager = FindViewById <ViewPager>(Resource.Id.viewpager);

            //viewpager holding fragment array and tab title text
            viewPager.Adapter = new TabsFragmentPagerAdapter(SupportFragmentManager, fragments, titles);

            // Give the TabLayout the ViewPager
            tabLayout.SetupWithViewPager(viewPager);
            //tabLayout.SetTabTextColors(
        }
        private void InitComponent()
        {
            try
            {
                ViewPager = FindViewById <ViewPager>(Resource.Id.viewpager);
                TabLayout = FindViewById <TabLayout>(Resource.Id.tabs);

                ViewPager.OffscreenPageLimit = 5;
                SetUpViewPager(ViewPager);
                ViewPager.AddOnPageChangeListener(this);
                TabLayout.SetupWithViewPager(ViewPager);

                TabLayout.SetTabTextColors(AppSettings.SetTabDarkTheme ? AppSettings.TitleTextColorDark : AppSettings.TitleTextColor, Color.ParseColor(AppSettings.MainColor));

                ActionButton      = FindViewById <TextView>(Resource.Id.toolbar_title);
                ActionButton.Text = GetText(Resource.String.Lbl_ApplyFilter);
                ActionButton.SetTextColor(AppSettings.SetTabDarkTheme ? AppSettings.TitleTextColorDark : AppSettings.TitleTextColor);

                ResetFilterButton      = FindViewById <Button>(Resource.Id.ResetFilterButton);
                ResetFilterButton.Text = GetText(Resource.String.Lbl_ResetFilter);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
示例#6
0
 private void UpdateTextColors(TabLayout tabLayout)
 {
     if (TabPage.SelectedTabItemTextColor.HasValue)
     {
         tabLayout.SetTabTextColors(TabPage.BarTextColor.ToAndroid(), TabPage.SelectedTabItemTextColor.Value.ToAndroid());
     }
 }
示例#7
0
        private void FnInitTabLayout()
        {
            tabLayout.SetTabTextColors(Android.Graphics.Color.Aqua, Android.Graphics.Color.AntiqueWhite);
            //Fragment array
            UserFragment    userFragment    = new UserFragment();
            RubricFragment  rubricFragment  = new RubricFragment();
            RatingFragment  ratingFragment  = new RatingFragment();
            ReporteFragment reporteFragment = new ReporteFragment();

            Repository.mActionGetRubrAdapter  = GetRubricAdapter;
            Repository.mActionGetArrey        = GetArrey;
            Repository.mActionGetAdapter      = GetUserAdapter;
            ratingFragment.mActionGetArreyRep = GetRatingAdapter;
            reporteFragment.mActionGetArrey   = GetReporteAdapter;
            if (Repository.UserId == 61)
            {
                var fragments = new Android.Support.V4.App.Fragment[]
                {
                    userFragment,
                    rubricFragment,
                    ratingFragment,
                    reporteFragment,
                };
                //Tab title array
                var titles = CharSequence.ArrayFromStringArray(new[] {
                    "Пользователи",
                    "Рубрики",
                    "Рейтинг",
                    "Отчёт",
                });
                var viewPager = FindViewById <ViewPager>(Resource.Id.viewpager);
                //viewpager holding fragment array and tab title text
                viewPager.Adapter = new TabsFragmentPagerAdapter(SupportFragmentManager, fragments, titles);
                // Give the TabLayout the ViewPager

                tabLayout.SetupWithViewPager(viewPager);
            }
            else if (Repository.UserId != 61)
            {
                var fragments = new Android.Support.V4.App.Fragment[]
                {
                    rubricFragment,
                    ratingFragment,
                };
                //Tab title array
                var titles = CharSequence.ArrayFromStringArray(new[] {
                    "Рубрики",
                    "Рейтинг",
                });
                var viewPager = FindViewById <ViewPager>(Resource.Id.viewpager);
                //viewpager holding fragment array and tab title text
                viewPager.Adapter = new TabsFragmentPagerAdapter(SupportFragmentManager, fragments, titles);
                // Give the TabLayout the ViewPager

                tabLayout.SetupWithViewPager(viewPager);
            }
        }
示例#8
0
        protected virtual void SetColors(TabLayout tabLayout, Color foreground, Color background, Color title, Color unselected)
        {
            var titleArgb      = title.ToPlatform(ShellRenderer.DefaultTitleColor).ToArgb();
            var unselectedArgb = unselected.ToPlatform(ShellRenderer.DefaultUnselectedColor).ToArgb();

            tabLayout.SetTabTextColors(unselectedArgb, titleArgb);
            tabLayout.SetBackground(new ColorDrawable(background.ToPlatform(ShellRenderer.DefaultBackgroundColor)));
            tabLayout.SetSelectedTabIndicatorColor(foreground.ToPlatform(ShellRenderer.DefaultForegroundColor));
        }
示例#9
0
 void SetupTabColors()
 {
     _tabLayout.SetSelectedTabIndicatorColor(_selectedColor);
     _tabLayout.SetTabTextColors(_unselectedColor, _selectedColor);
     for (int i = 0; i < _tabLayout.TabCount; i++)
     {
         var tab = _tabLayout.GetTabAt(i);
         tab.Icon?.SetColorFilter(_unselectedColor, PorterDuff.Mode.SrcIn);
     }
 }
示例#10
0
        /// <summary>
        /// Called on first binding of <see cref="VectorIconTabbedPage"/>. Sets <see cref="Android"/> View to
        /// use for <see cref="TabLayout"/>, and sets <see cref="TabLayout.TabTextColors"/>
        /// </summary>
        /// <param name="e"></param>
        protected override void OnElementChanged(ElementChangedEventArgs <TabbedPage> e)
        {
            base.OnElementChanged(e);

            _tbLayout = FindViewById <TabLayout>(TabLayoutResourceID);

            var element = Element as VectorIconTabbedPage;

            _tbLayout.SetTabTextColors(element.UnselectedIconColor.ToAndroid(), element.SelectedIconColor.ToAndroid());
        }
示例#11
0
        void UpdateBarTextColor()
        {
            if (_disposed || _tabLayout == null)
            {
                return;
            }

            Color textColor = Element.BarTextColor;

            if (!textColor.IsDefault)
            {
                _tabLayout.SetTabTextColors(textColor.ToAndroid().ToArgb(), textColor.ToAndroid().ToArgb());
            }
        }
示例#12
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);
            }
        }
        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);

            if (setup)
            {
                return;
            }

            if (e.PropertyName == "Renderer")
            {
                tabbedPage = (CoreTabbedPage)Element;
                if (!tabbedPage.IsToolbarBottom)
                {
                    //var groupName = ViewGroup.GetChildAt(0).GetType().Name;
                    layout = (TabLayout)ViewGroup.GetChildAt(1);
                    setup  = true;

                    ColorStateList colors = CreateColorState();

                    layout?.SetTabTextColors(tabbedPage.UnSelectedForegroundColor.ToAndroid(), tabbedPage.SelectedForegroundColor.ToAndroid());

                    if (tabbedPage.TabBackgroundColor != Color.Default)
                    {
                        layout?.SetBackgroundColor(tabbedPage.TabBackgroundColor.ToAndroid());
                    }

                    if (layout != null)
                    {
                        for (int i = 0; i < layout.TabCount; i++)
                        {
                            var tab  = layout.GetTabAt(i);
                            var icon = tab.Icon;
                            if (icon != null)
                            {
                                icon = DrawableCompat.Wrap(icon);
                                DrawableCompat.SetTintList(icon, colors);
                            }
                        }
                    }
                }
            }
        }
示例#14
0
        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);
            if (setup)
            {
                return;
            }

            if (e.PropertyName == "Renderer")
            {
                pager  = (ViewPager)ViewGroup.GetChildAt(0);
                layout = (TabLayout)ViewGroup.GetChildAt(1);
                setup  = true;


                layout.SetBackgroundColor(Android.Graphics.Color.White);
                layout.SetTabTextColors(Android.Graphics.Color.Black, Android.Graphics.Color.Red);
            }
        }
示例#15
0
        private void InitTabLayout()
        {
            tabLayout.SetTabTextColors(Color.Aqua, Color.AntiqueWhite);
            var fragments = new Fragment[]
            {
                myDebtsListFragment    = new DebtListFragment(Debts, debt => !debt.IsPaid && debt.IsMyDebt),
                theirDebtsListFragment = new DebtListFragment(Debts, debt => !debt.IsPaid && debt.IsTheirDebt)
            };
            var titles = CharSequence.ArrayFromStringArray(new[]
            {
                GetString(Resource.String.taken_debts),
                GetString(Resource.String.given_debts)
            });

            var viewPager = FindViewById <ViewPager>(Resource.Id.viewpager);

            viewPager.Adapter = new TabsFragmentPagerAdapter(SupportFragmentManager, fragments, titles);
            tabLayout.SetupWithViewPager(viewPager);
            initialized = true;
        }
示例#16
0
        private void SetUpViewPager(ViewPager viewPager)
        {
            try
            {
                UserTab    = new SearchUserFragment();
                HashTagTab = new SearchHashtagFragment();

                MainTabAdapter adapter = new MainTabAdapter(ChildFragmentManager);
                adapter.AddFragment(UserTab, GetText(Resource.String.Lbl_Users));
                adapter.AddFragment(HashTagTab, GetText(Resource.String.Lbl_HashTags));
                viewPager.Adapter = adapter;

                TabLayout.SetTabTextColors(AppSettings.SetTabDarkTheme ? Color.White : Color.Black,
                                           Color.ParseColor(AppSettings.MainColor));
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
示例#17
0
        void FnInitTabLayout()
        {
            var fragments = new Fragment[]
            {
                new MapViewFragment(),
                new ListViewFragment(),
            };

            var titles = CharSequence.ArrayFromStringArray(new[] {
                "Map View",
                "List View",
            });



            viewPager.Adapter = new ViewPagerAdapter(ChildFragmentManager, fragments, titles);
            tabLayout.SetTabTextColors(Color.Rgb(192, 192, 192), Color.Rgb(62, 133, 199));

            tabLayout.SetupWithViewPager(viewPager);
            // tabLayout.GetTabAt(0).SetIcon(Resource.Drawable.home2);
        }
示例#18
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);
            }
        }
示例#19
0
        private void SetUpViewPager(ViewPager viewPager)
        {
            try
            {
                SongsTab    = new SearchSongsFragment();
                AlbumsTab   = new SearchAlbumsFragment();
                PlaylistTab = new SearchPlaylistFragment();
                ArtistsTab  = new SearchArtistsFragment();

                MainTabAdapter adapter = new MainTabAdapter(ChildFragmentManager);
                adapter.AddFragment(SongsTab, GetText(Resource.String.Lbl_Songs));
                adapter.AddFragment(AlbumsTab, GetText(Resource.String.Lbl_Albums));
                adapter.AddFragment(PlaylistTab, GetText(Resource.String.Lbl_Playlist));
                adapter.AddFragment(ArtistsTab, GetText(Resource.String.Lbl_Artists));
                viewPager.OffscreenPageLimit = 4;
                viewPager.Adapter            = adapter;

                TabLayout.SetTabTextColors(AppSettings.SetTabDarkTheme ? Color.White : Color.Black, Color.ParseColor(AppSettings.MainColor));
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
        protected override void OnElementChanged(ElementChangedEventArgs <TabbedPage> e)
        {
            base.OnElementChanged(e);

            var fieldInfo = typeof(TabbedPageRenderer).GetField("_tabLayout", BindingFlags.Instance | BindingFlags.NonPublic);

            _tabs = (TabLayout)fieldInfo.GetValue(this);

            var teardownPage = typeof(TabbedPageRenderer).GetMethod("TeardownPage", BindingFlags.Instance | BindingFlags.NonPublic);

            _window = (Context as FormsAppCompatActivity).Window;

            if (e.OldElement != null)
            {
            }

            if (e.NewElement != null)
            {
                _tabbedEx = Element as TabbedPageEx;
                if (!_tabbedEx.IsDefaultColor)
                {
                    //OnTabSelectedListenerを上書きする
                    _tabs.SetOnTabSelectedListener(this);
                }

                // https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs#L297
                // OnPagePropertyChangedでいらんことしてるので即TeardownPageを呼び出して解除する
                // (TabのTextを子ページのTitleと連動させているが、TabのTextはTabAttributeで設定するようにしているので不要)
                foreach (var page in Element.Children)
                {
                    teardownPage.Invoke(this, new object[] { page });
                }

                for (var i = 0; i < _tabbedEx.TabAttributes.Count; i++)
                {
                    var attr = _tabbedEx.TabAttributes[i];

                    if (i == 0 && _tabbedEx.Parent is NavigationPageEx)
                    {
                        var navi = _tabbedEx.Parent as NavigationPageEx;
                        navi.BarTextColor = _tabbedEx.BarTextColor;
                        if (attr.BarTextColor != Xamarin.Forms.Color.Default)
                        {
                            navi.BarTextColor = attr.BarTextColor;
                        }
                        navi.StatusBarBackColor = _tabbedEx.StatusBarBackColor;
                        if (attr.StatusBarBackColor != Xamarin.Forms.Color.Default)
                        {
                            navi.StatusBarBackColor = attr.StatusBarBackColor;
                        }
                        _tabbedEx.Title = (_tabbedEx.CurrentPage as Page).Title;
                        _tabbedEx.CurrentPage.PropertyChanged += CurrentPage_PropertyChanged;

                        var renderer = Platform.GetRenderer(navi) as NavigationPageExRenderer;
                        renderer.UpdateMenu();
                    }


                    if (string.IsNullOrEmpty(attr.Resource))
                    {
                        continue;
                    }

                    var bitmap = SvgToBitmap.GetBitmap(attr.Resource, 24, 24);
                    var icon   = new BitmapDrawable(Context.Resources, bitmap);
                    var tab    = _tabs.GetTabAt(i);
                    tab.SetIcon(icon);

                    if (!_tabbedEx.IsDefaultColor || !attr.IsDefaultColor)
                    {
                        var color = _tabbedEx.SelectedColor.ToAndroid();

                        if (i == 0)
                        {
                            if (attr.SelectedColor != Xamarin.Forms.Color.Default)
                            {
                                color = attr.SelectedColor.ToAndroid();
                            }
                            _tabs.SetSelectedTabIndicatorColor(color);
                            if (_tabbedEx.StatusBarBackColor != Xamarin.Forms.Color.Default)
                            {
                                _window.SetStatusBarColor(_tabbedEx.StatusBarBackColor.ToAndroid());
                            }
                            else if (attr.StatusBarBackColor != Xamarin.Forms.Color.Default)
                            {
                                _window.SetStatusBarColor(attr.StatusBarBackColor.ToAndroid());
                            }
                        }
                        else
                        {
                            color = _tabbedEx.UnSelectedColor.ToAndroid();
                            if (attr.UnSelectedColor != Xamarin.Forms.Color.Default)
                            {
                                color = attr.UnSelectedColor.ToAndroid();
                            }
                        }
                        tab.Icon.SetTint(color);
                        _tabs.SetTabTextColors(_tabbedEx.UnSelectedTextColor.ToAndroid(), _tabbedEx.SelectedTextColor.ToAndroid());
                    }

                    if (_tabbedEx.IsTextHidden)
                    {
                        tab.SetText("");
                    }
                }
            }
        }