summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs18
1 files changed, 14 insertions, 4 deletions
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