【问题标题】:What is the difference between colorPrimary and colorPrimaryDark in themes主题中的 colorPrimary 和 colorPrimaryDark 有什么区别
【发布时间】:2018-02-03 09:25:24
【问题描述】:

我正在尝试了解主题在 android 中的工作原理。我不知道为什么 colorPrimaryDark 不适合我,或者我做错了。

我尝试了这个设置,我的操作栏因为 colorPrimary 变成了红色:

<style name="MenuTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  <item name="colorPrimary">#FF0000</item>
  <item name="colorPrimaryDark">#0000FF</item>
  <item name="colorAccent">#00FF00</item>    
  <item name="actionMenuTextColor">#0000FF</item>
</style>

我试图删除 colorPrimary 并且它变成黑色(我认为它会使用蓝色,因为 colorPrimaryDark:

<style name="MenuTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  <item name="colorPrimaryDark">#0000FF</item>
  <item name="colorAccent">#00FF00</item>    
  <item name="actionMenuTextColor">#0000FF</item>
</style>

我试图删除 colorPrimaryDark 并离开 colorPrimary 并且它再次变成红色:

<style name="MenuTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  <item name="colorPrimary">#FF0000</item>
  <item name="actionMenuTextColor">#0000FF</item>
</style>

我不知道我是否以错误的方式使用它,或者它根本没有真正改变。谁能告诉我它们之间的区别?

我还尝试了 actionMenuTextColor 来更改 actionBar 中的文本颜色,但什么也没发生。我发现了使用 parent="Theme.AppCompat.Light.DarkActionBar" 而不是单独使用 parent="Theme.AppCompat.Light" 的解决方案。但当然它只会变成白色。如果有任何方法,我仍在尝试以不同的颜色制作它。

【问题讨论】:

    标签: android xml xamarin


    【解决方案1】:
    • colorPrimary – 应用栏的颜色。
    • colorPrimaryDark – 状态栏和上下文应用的颜色 酒吧;这通常是 colorPrimary 的深色版本。
    • colorAccent – UI 控件的颜色,例如复选框、单选 按钮和编辑文本框。
    • windowBackground – 屏幕背景的颜色。
    • textColorPrimary – 应用栏中 UI 文本的颜色。
    • statusBarColor – 状态栏的颜色。
    • navigationBarColor – 导航栏的颜色。

    您可以使用以下链接来设置您的风格。

    https://blog.xamarin.com/material-design-for-your-xamarin-forms-android-apps/

    【讨论】:

    • 我已经通过您的解释以及我阅读的文档了解了这一点。我已经在尝试您提供的其他示例,但我注意到有些示例没有生效,例如 colorPrimaryDark、statusBarColor 和 textColorPrimary。为什么?在使用它之前我需要做些什么吗?
    • 从哪里获取所有这些colorPrimarycolorPrimaryDark 等的完整列表,我们可以在我们的应用程序中覆盖它们并根据需要更改它们的值?先生,任何资源或链接将不胜感激
    • 使用调色工具material.io/resources/color
    • @AnatoliyShuba,我同意,该工具非常好。我遇到的唯一问题是它使用颜色生成的 XMl 不使用 Android 的命名约定(例如,当 Android 需要“colorPrimary”时,它返回“primaryColor”,其他值相同)。
    【解决方案2】:
    • colorPrimary - 在应用程序的屏幕和组件中最常显示的颜色。当绘制在表面或背景颜色的顶部时,此颜色应通过文本/图标的可访问性指南。 (默认值:#6200EE)
    • colorPrimaryVariant - 原色的色调变化。 (默认值:#3700B3)
    • colorOnPrimary - 当绘制在原色之上时,通过文本/图标的可访问性指南的颜色。 (默认值:#FFFFFF)
    • colorSecondary - 应用程序的次要品牌颜色,通常是主要品牌颜色的重点补充。 (默认值:#03DAC6)
    • colorSecondaryVariant - 辅助颜色的色调变化。 (默认值:#018786)
    • colorOnSecondary - 在辅助颜色之上绘制时通过文本/图标可访问性指南的颜色。 (默认值:#000000)

    https://material.io/develop/android/theming/color

    【讨论】:

      【解决方案3】:
      android:background="?attr/colorPrimary"
      

      您可以使用它来使用默认的 colorPrimary 值

      【讨论】:

        猜你喜欢
        • 2021-10-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 2015-09-01
        • 2012-04-02
        • 2023-03-08
        • 2015-01-24
        相关资源
        最近更新 更多