Подтвердить что ты не робот

Андроид colorControlNormal xml атрибуты не работают pre-Lollipop

Я пытаюсь изменить цвет строки EditText внизу, но мой EditText по-прежнему не хочет менять цвет, но он использует стиль от Material.

Я попытался изменить цвет, следующий за этим ответом: ссылка

Итак, у меня есть EditText с формой Material, но не с цветами, которые я установил.

Я поместил appcompat-v7 в мой конфигурационный файл Gradle, и он уже работает для основного цвета.

<style name="AppBaseTheme.MiddleTheme.Widget.EditText" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/middle_primary</item>
    <!-- Those 3 lines are staying in red war in IntelliJ but it does build the project -->
    <item name="android:colorControlNormal">@color/middle_sqool_primary</item>
    <item name="android:colorControlActivated">@color/middle_sqool_primary</item>
    <item name="android:colorControlHighlight">@color/middle_sqool_primary</item>            
</style>
4b9b3361

Ответ 1

Вы должны установить colorControlActivated, colorControlHighlight и colorControlNorma l в своей теме приложения (или теме деятельности) не в стиле edittext.

Что-то вроде этого:

<style name="Theme.App.Base" parent="Theme.AppCompat.Light">
    <item name="colorControlNormal">@color/middle_sqool_primary</item>
    <item name="colorControlActivated">@color/middle_sqool_primary</item>
    <item name="colorControlHighlight">@color/middle_sqool_primary</item>
</style>

Ответ 2

В качестве обходного пути попробуйте использовать android.support.v7.widget.AppCompatEditText, а не EditText. Вы всегда должны использовать это для программно созданных представлений.

Довольно уверен, что вы сделали это, но убедитесь, что редактируете темы в папке values, а не в values-v21 (если есть).

Ответ 3

У меня была аналогичная проблема. Требуется изменить цвет подсветки элементов меню. И ни один из этих атрибутов не работал (Support Library v25.0.0).

Единственным атрибутом, который позволил мне изменить цвет на устройствах Pre-L, является следующее:

<item name="actionBarItemBackground">@drawable/YOUR_DRAWABLE</item>

Я прекратил поиск дальнейших обходных решений, потому что очевидно, что библиотека поддержки НЕ готова к производственному коду.