如何使用样式更改所选项目的颜色?

How do I change the selected item colour using Styles?

我有一个 Android 5 设备,我使用这个博客设置了一些 Material StylesMaterial Design Theming for Xamarin.Forms Android Apps 并得到了这个主题:

Values-v21\styles.xml

<resources>
  <style name="MyTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
    <item name="android:colorPrimary">@color/color_primary</item>
    <item name="android:colorPrimaryDark">@color/color_primary_dark</item>
    <item name="android:colorAccent">@color/accent</item>
    <item name="android:colorControlNormal">@color/color_primary</item>
    <item name="android:colorControlActivated">@color/color_primary</item>
    <item name="android:colorControlHighlight">@color/color_primary</item>
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    <item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
  </style>
</resources>

Values\colors.xml

<resources>
  <color name="color_primary">#404040</color>
  <color name="color_primary_dark">#404040</color>
  <color name="accent">#379ADE</color>
</resources>

这很好..但是..我似乎无法弄清楚为什么我选择的项目显示 orange?

如何使用 Styles 更改所选项目的颜色。橙色 是从哪里来的?

Ps. 如果我删除样式它 returns 到默认的蓝色。

我也找到了 Android Color Control Cheat Sheet 但看不到更改列表视图所选项目的条目

您似乎混淆了 Xamarin.Forms 样式和 Android 资源。

在 Xamarin.Forms 中,您可以根据 属性 的变化来更改颜色,例如 this:

   <ResourceDictionary>
     <Style TargetType="Entry"> 
       <Style.Triggers>
         <Trigger TargetType="Entry" Property="IsFocused" Value="True">
             <Setter Property="BackgroundColor" Value="Yellow" />
         </Trigger>
       </Style.Triggers>
     </Style>
   </ResourceDictionary>

您可能想要定义您的颜色 Xamarin.Forms <ResourceDictionary>(不是 Android <resource>)并且可能在启动时从特定于平台的资源中填充字典。

一般性旁注:使用 Xamarin.Forms 时,请以独立于平台的方式真正关注应用程序的功能;根据经验,我可以说当您对平台采取微妙的依赖性(例如颜色、大小、UI 范例等)时,追溯地使应用程序独立于平台是困难和混乱的。