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

问题描述:

我有一个Android 5设备,我设置了一些Material Styles使用这个博客:Material 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我选择的项目..哪里橙色从哪里来的颜色?

诗篇。如果我删除样式,它将返回到默认蓝色。

我还发现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>(未安卓<resource>),也许填充的字典从平台特定的资源启动时间。

一般的边注:使用Xamarin.Forms当真正专注于独立于平台的方式您的应用程序的功能;从经验,我可以说这是困难的,凌乱的追溯使应用程序与平台无关的,当你已经采取了平台上微妙的依存关系,如颜色,大小,UI范式等

+0

感谢您的回答。虽然我不确定它对我有用。我的Android样式可以自定义工具栏,但出于某种原因也可以自定义选定的项目。我的项目,我选择是一个ListViewItem的,我不能看到如何隐式风格添加到我的ResourceDictionary为 – user1

+0

它一定是事做:'@android:风格/ Theme.Material.Light.DarkActionBar'如删除单个项目工程 – user1

+0

你试图明确的风格适用于您的ListView覆盖默认的主题不会改变任何东西,但切除整个风格?我仍然建议不要专注于底层操作系统的特定风格,并更多地关注应用程序本身。或者,如果你专注于Android只使用Xamarin.Droid而不是Forms,那么它更清洁 –