2014-10-31 3 views
9

В API 21 мы можем использовать colorAccent, чтобы изменить цвет виджетов, например EditText, RadioButton и т. Д. Но это не относится к подклассам этих виджетов. Я пробовал this, но это точно так же, как colorAccent, оно применимо только к оригинальным виджетам.Дизайн материалов для подкласса EditText

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

+2

Что вы подразумеваете под «подклассом EditText»? Вы говорите, что если вы расширяете EditText, то colorAccent не применяется? – Squonk

+0

@Squonk yup..I создал пользовательский EditText, расширив оригинальный EditText, но colorAccent не применим к моему пользовательскому EditText. –

ответ

11

На самом деле, как поддержка Android 22.1 вы должны подкласс AppCompatEditText.

+0

Это решение вылетает из-за Marshmallow. – AndroidDev

+0

Нет, это не так, может быть, вы делаете что-то другое. – Jessicardo

0

Поскольку вы не опубликовали какой-либо исходный код, я предполагаю, что вы не раздуваете свое представление из макета XML, а rater вызывают новый MyCustomEditText.

Как заявили разработчики сайта: дизайн материальной темы может применяться только при загрузке представлений с использованием надувного макета.

Это связано с тем, что обратный транспорт нового материала захватывает процесс разметки компоновки.

Еще одна причина может заключаться в том, что библиотека appcompat v7 загружает только конструкцию материала, когда находит XML-макет EditText. И он не распознает компоненты пользовательского представления.

Google планирует обнародовать виджеты для хранилища материалов для общественности, они заявили, что они в настоящее время находятся в разработке. Вы можете переопределить эти специальные виджеты backport, которые могут решить вашу проблему. Но так как они еще не открыты, вы не можете.

+0

Я назвал свой пользовательский вид через xml и раздул его через onCreateView. Так что, наверное, мне нужно подождать? –

12

Для применения colorAccent просто расширить свой собственный класс EditText от android.support.v7.widget.AppCompatEditText

+0

wow, я не знал, что .. очень важно .. –

+1

@DarkLeonhart этот класс предназначен для внутреннего использования библиотеки поддержки, но я не знаю другого способа. – AndrOvip

Смежные вопросы