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

标签 android colors xamarin.forms

我有一个带有 5 个 child 的 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>

最佳答案

转到您的 Project.Droid、文件夹 Resources、layout,然后单击 wright 按钮,打开方式,XML 编辑器。 在文件中,编辑:

app:tabSelectedTextColor="#ffffff

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

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

关于android - 如何在 Android : Xamarin Forms 中更改选项卡式页面标题的选定和未选定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525411/

相关文章:

android - 带有 "cordova-plugin-local-notifications"插件的本地通知

html - Css 用颜色填充 div 高度

android - 自定义 CalendarView 以允许不同的日期显示

c# - Xamarin Forms Grid - C# 中的行高为 "*"?

database - Xamarin.Forms 和离线优先

java - 文件不追加 android

java - Android:.getDrawable 已弃用,最低 SDK 17 解决方案?

使用 Swipe View 和 Tile Strip 的 Android 布局

PHP - 过滤/搜索颜色

android - 将 Xamarin 表单更新到 5.0.0.2401 后,Xamarin 表单 android 抛出空异常