summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamantha Houts <samantha@teamredwall.com>2016-05-27 10:51:59 -0700
committerJason Smith <jason.smith@xamarin.com>2016-05-27 10:51:59 -0700
commitf5bb474590add36bbf45b5455c7271a85eb7feda (patch)
tree2ca477fbffc3bd46732e728e14b88f41eb3fea28
parent31ba696514f9b069d5dd6a8520d4f9f2ef963f74 (diff)
downloadxamarin-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.cs20
-rw-r--r--Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs18
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