如何更改Android中选项卡页面标题的选定和未选定颜色:Xamarin Forms

问题描述 投票:2回答:2

我有一个带有5个孩子的Xamarin Forms选项卡页面:

enter image description here

如图所示,所选和未选定选项卡的图标颜色不同。我想在每个标签Title上发生同样的事情。这可能吗?

编辑:此功能在iOS中完美运行。我正在寻找特定于Android的渲染器。

以下是Android渲染器代码,负责更改子项的选定和未选中图标的颜色:

public class MyTabbedPageRenderer: TabbedPageRenderer
{
   bool setup;
   ViewPager viewPager;
   TabLayout tabLayout;

   protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
   {
      base.OnElementPropertyChanged(sender, e);

      if (setup)
         return;

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

         ColorStateList colors = null;
         if ((int)Build.VERSION.SdkInt >= 23)
         {
            colors = Resources.GetColorStateList(Resource.Color.icon_tab, Forms.Context.Theme);
         }
         else
         {
            colors = Resources.GetColorStateList(Resource.Color.icon_tab);
         }

         for (int i = 0; i < tabLayout.TabCount; i++)
         {
            var tab = tabLayout.GetTabAt(i);
            var icon = tab.Icon;
            if (icon != null)
            {
               icon = Android.Support.V4.Graphics.Drawable.DrawableCompat.Wrap(icon);
  Android.Support.V4.Graphics.Drawable.DrawableCompat.SetTintList(icon, colors);
             }
         }
      }
   }
 }

Resources - > Color文件夹中,我有以下xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#2196F3"  android:state_selected="true" />
    <item android:color="#b2b2b2" />
</selector>
android colors xamarin.forms
2个回答
0
投票

尝试在每个选项卡/页面上使用OnAppearing()和OnDisappearing()覆盖来更改图标的颜色或图像。


0
投票

转到Project.Droid,文件夹资源,布局和单击,使用wright按钮,打开方式,XML编辑器。在文件中,编辑:

app:tabSelectedTextColor="#ffffff

更改代码颜色的#ffffff。我希望它有效。

您还可以将app:tabTextColor="#80ffffff"更改为与Icon相同的颜色

© www.soinside.com 2019 - 2024. All rights reserved.