Изменение цвета заголовка и EditText в androidx.preference.EditTextPreference

Я нашел несколько похожих вопросов по этой теме, но это работает для support version, а не для androidx. Я не смог внести это изменение на androidx. Но на предыдущей версии поддержки уже есть решения для него. Может ли кто-нибудь дать мне несколько указаний о том, как я могу изменить цвет текста поля title и editetext в EditTextPreference? В настоящее время цвет белый, а фон тоже белый, тексты не видны.

введите здесь описание изображения

И вот решения, которые я уже нашел в stackoverflow, но не смог использовать. Я хотел бы изменить белый цвет текста на черный. Спасибо.


person Kidus Tekeste    schedule 14.10.2020    source источник
comment
Попробуйте добавить тему в свой диалог.   -  person Yeldar.N    schedule 14.10.2020
comment
@ Yeldar.N Я пробовал. Я получаю сообщение об ошибке при переопределении: AAPT: error: resource android:style/Preference.DialogPreference.EditTextPreference is private.   -  person Kidus Tekeste    schedule 14.10.2020


Ответы (1)


В потоке решения Murphybro2 мы также получили решение для androidx https://stackoverflow.com/a/58836953

Вы можете изменить AlertDialogStyle, используемый вашим приложением, предоставив собственный стиль темы.

<style name="AppTheme.Settings">
     <!-- This will change the opening dialogs for EditTextPreference -->
     <item name="alertDialogStyle">@style/Theme.example.AlertTheme</item>
</style>

<style name="Theme.example.AlertTheme" parent="">
    <item name="android:textViewStyle">@style/Theme.AlertTextStyle</item>
    <item name="android:textColor">@color/pink</item>
    <item name="android:editTextBackground">@color/pink</item>
    <item name="android:windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
    <item name="android:windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
    <item name="android:windowIsFloating">true</item>
</style>

<style name="Theme.AlertTextStyle" parent="Theme.example">
        <item name="android:textColorPrimary">@color/gray</item>
</style>

Самым важным для меня было windowIsFloating›true, потому что иначе окно застревает в верхней части экрана. Мне каким-то образом только добавление дополнительного textViewStyle помогло изменить верхний текст внутри диалогового окна, но я думаю, что это из-за моего примера темы.

person AndroidNewbieDarmstadt    schedule 26.06.2021