What is the difference between colorPrimary and colorPrimaryDark in themes

36,830

Solution 1

  • colorPrimary – The color of the app bar.
  • colorPrimaryDark – The color of the status bar and contextual app bars; this is normally a dark version of colorPrimary.
  • colorAccent – The color of UI controls such as check boxes, radio buttons, and edit text boxes.
  • windowBackground – The color of the screen background.
  • textColorPrimary – The color of UI text in the app bar.
  • statusBarColor – The color of the status bar.
  • navigationBarColor – The color of the navigation bar.

you can use following link to setup your style.

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

Solution 2

  • colorPrimary - The color displayed most frequently across your app’s screens and components. This color should pass accessibilty guidelines for text / iconography when drawn on top of the surface or background color. (Default Value: #6200EE)
  • colorPrimaryVariant - A tonal variation of the primary color. (Default Value: #3700B3)
  • colorOnPrimary - A color that passes accessibility guidelines for text/iconography when drawn on top of the primary color. (Default Value: #FFFFFF)
  • colorSecondary - The secondary branding color for the app, usually an accented complement to the primary branding color. (Default Value: #03DAC6)
  • colorSecondaryVariant - A tonal variation of the secondary color. (Default Value: #018786)
  • colorOnSecondary - A color that passes accessibility guidelines for text/iconography when drawn on top of the secondary color. (Default Value: #000000)

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

Solution 3

android:background="?attr/colorPrimary"

You can use this to use the default colorPrimary value

Share:
36,830
jace
Author by

jace

I just love to code.

Updated on November 20, 2021

Comments

  • jace
    jace over 2 years

    I'm trying to understand how the theme works in android. I don't know why colorPrimaryDark won't work with me or maybe i'm doing it wrong.

    I tried this set and my action bar turns red because of 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>
    

    I tried to remove the colorPrimary and it turns black (which I thought it will use blue because of 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>
    

    I tried to remove the colorPrimaryDark and left the colorPrimary and it turns red again:

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

    I don't know if i'm using it in wrong way or it's not really changing at all. Can anyone tell me the difference among them?

    I also tried actionMenuTextColor to change the text color in actionBar but nothing happened. I found out the solution using parent="Theme.AppCompat.Light.DarkActionBar" instead of parent="Theme.AppCompat.Light" alone. But of course it will only turn into white. I'm still trying to make it in different color if there is any way.