Android Styling/Theming of just Search Dialog

后端 未结 2 2058
南方客
南方客 2021-01-20 03:58

tl;dr: White text style in app theme being picked up by search dialog, making search text invisible.

I\'m struggling mightily with what seems like a

相关标签:
2条回答
  • 2021-01-20 04:29

    The attribute android:textColor is not meant to be used inside theme styles, it is primarily useful in widget and text appearance styles.

    If you want to change the general text colors through a theme, use instead the android:textColor* family of attributes. There are quite a few of them, and different Views use them differently, so it takes a bit of experimentation (or careful studying of the Android source code) to to get it all right. The android.R.attr documentation lists them all. Look for the attributes that begin with textColor....

    To get you started, try this theme, it will behave better by not affecting the Search Dialog colors at all, which seems to be what you want. By the way, you don't need to set android:windowNoTitle to true in your theme as your parent theme does that already:

    <style name="master" parent="@android:style/Theme.NoTitleBar">
        <item name="android:textColorPrimary">#EEEEEE</item>
        <item name="android:textColorSecondary">#EEEEEE</item>
        <item name="android:textColorTertiary">#EEEEEE</item>
    </style>
    
    0 讨论(0)
  • 2021-01-20 04:36

    I got into the same problem as you. I've looked around for a solution but it seems that you just can't change the textColor of a dialog. My solution was creating a custom dialog based on this tutorial: http://blog.androgames.net/10/custom-android-dialog/

    I extended this a lot based on the Android source code, always using the same method names etc to make it a bit easier.

    It is not ideal, but as far as I know it's the best option...

    EDIT: for your problem there might be a simpler solution: don't put the textColor into the theme, but put it in a style. I don't know how you're styling your app but I'm usually creating a "master-style" which all the others inherit from (direct or indirect). You could then put the textColor in there so all your standard dialogs will still have the standard textColor.

    0 讨论(0)
提交回复
热议问题