diff options
author | Samantha Houts <samantha@teamredwall.com> | 2016-05-27 10:51:59 -0700 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-05-27 10:51:59 -0700 |
commit | f5bb474590add36bbf45b5455c7271a85eb7feda (patch) | |
tree | 2ca477fbffc3bd46732e728e14b88f41eb3fea28 | |
parent | 31ba696514f9b069d5dd6a8520d4f9f2ef963f74 (diff) | |
download | xamarin-forms-f5bb474590add36bbf45b5455c7271a85eb7feda.tar.gz xamarin-forms-f5bb474590add36bbf45b5455c7271a85eb7feda.tar.bz2 xamarin-forms-f5bb474590add36bbf45b5455c7271a85eb7feda.zip |
[A] TabbedPage text can be set back to Default (#157)
-rw-r--r-- | Xamarin.Forms.Controls/CoreGallery.cs | 20 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs | 18 |
2 files changed, 33 insertions, 5 deletions
diff --git a/Xamarin.Forms.Controls/CoreGallery.cs b/Xamarin.Forms.Controls/CoreGallery.cs index 27c2f0aa..bf4fe399 100644 --- a/Xamarin.Forms.Controls/CoreGallery.cs +++ b/Xamarin.Forms.Controls/CoreGallery.cs @@ -69,6 +69,17 @@ namespace Xamarin.Forms.Controls public CoreNavigationPage () { AutomationId = "NavigationPageRoot"; + + BarBackgroundColor = Color.Maroon; + BarTextColor = Color.Yellow; + + Device.StartTimer(TimeSpan.FromSeconds(2), () => { + BarBackgroundColor = Color.Default; + BarTextColor = Color.Default; + + return false; + }); + Navigation.PushAsync (new CoreRootPage (this)); } } @@ -86,7 +97,14 @@ namespace Xamarin.Forms.Controls AutomationId = "TabbedPageRoot"; BarBackgroundColor = Color.Maroon; - BarTextColor = Color.White; + BarTextColor = Color.Yellow; + + Device.StartTimer(TimeSpan.FromSeconds(2), () => { + BarBackgroundColor = Color.Default; + BarTextColor = Color.Default; + + return false; + }); Children.Add(new CoreRootPage(this, NavigationBehavior.PushModalAsync) { Title = "Tab 1" }); Children.Add(new CoreRootPage(this, NavigationBehavior.PushModalAsync) { Title = "Tab 2" }); diff --git a/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs b/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs index 8af824ce..4bd54906 100644 --- a/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs +++ b/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs @@ -17,6 +17,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat public class TabbedPageRenderer : VisualElementRenderer<TabbedPage>, TabLayout.IOnTabSelectedListener, ViewPager.IOnPageChangeListener, IManageFragments { Drawable _backgroundDrawable; + int? _defaultColor; bool _disposed; FragmentManager _fragmentManager; TabLayout _tabLayout; @@ -153,7 +154,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat tabs = _tabLayout = new TabLayout(activity) { TabMode = TabLayout.ModeFixed, TabGravity = TabLayout.GravityFill }; FormsViewPager pager = _viewPager = - new FormsViewPager(activity) + new FormsViewPager(activity) { OverScrollMode = OverScrollMode.Never, EnableGesture = UseAnimations, @@ -364,9 +365,18 @@ namespace Xamarin.Forms.Platform.Android.AppCompat if (_disposed || _tabLayout == null) return; - Color textColor = Element.BarTextColor; - if (!textColor.IsDefault) - _tabLayout.SetTabTextColors(textColor.ToAndroid().ToArgb(), textColor.ToAndroid().ToArgb()); + 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); } } }
\ No newline at end of file |