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

时间:2015-10-14 10:46:25

标签: android xamarin xamarin.android xamarin.forms android-styles

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

值-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>

值\ colors.xml

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

这很好..但是......我似乎无法理解为什么我选择的项目出现橙色?

enter image description here

如何使用Styles更改所选项目的颜色.. 橙色来自何处?

Ps。如果删除样式,则会返回默认的蓝色。

我还找到了Android Color Control Cheat Sheet,但无法看到更改listview所选项目的条目

1 个答案:

答案 0 :(得分:1)

看起来你正在使用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时,表格真正专注于平台无关的应用功能;从经验中我可以说,当您在平台上采取微妙的依赖关系时,追溯性地使应用程序平台独立是困难和混乱的,例如颜色,大小,UI范例等。