如何使用样式更改所选项目的颜色?
How do I change the selected item colour using Styles?
我有一个 Android 5
设备,我使用这个博客设置了一些 Material Styles
:Material 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 范例等)时,追溯地使应用程序独立于平台是困难和混乱的。
我有一个 Android 5
设备,我使用这个博客设置了一些 Material Styles
:Material 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 范例等)时,追溯地使应用程序独立于平台是困难和混乱的。