Search code examples
androidandroid-studioandroid-themeappsettingspreferenceactivity

How to change style of PreferenceThemeOverlay / PreferenceFragmentCompat


I worked myself thru the AndroidFundamtentals Tutorial 09.2 (App Settings) but I couldn't find a working solution for my problem.

I want to change the style (backgroundcolor) of the Settings-Fragment in my app.

That's what I have coded in the styles.xml so far:

    <style name="AppThemeWithActionBar" parent="Theme.AppCompat.DayNight.DarkActionBar">
        <item name="colorPrimary">@color/cr_blue_dark2</item>
        <item name="colorPrimaryDark">@color/cr_blue_dark</item>
        <item name="colorAccent">@color/cr_green</item>
<!-- more styles-->
        <item name="preferenceTheme">@style/AppTheme.SettingsScreen</item>
    </style>
    
    
    
    <style name="AppTheme.SettingsScreen" parent="PreferenceThemeOverlay">
        <item name="backgroundColor">@color/cr_black</item>
        <item name="background">@color/cr_black</item> <!--one of these should make the background black-->
    </style>

This code does not change the background color of the Settings fragment.

If you need more code just write an comment. :)


Solution

  • I just found the solution / mistake. The parent of the style AppThemeWithActionBar is wrong. It changes the background to light.
    Change the title of the style like this:

     <style name="AppThemeWithActionBar" parent="Theme.MaterialComponents">
    

    Also change the theme of the activity in the Manifest.xml file.