Как установить атрибут стиля программно в Android?
Я должен установить стиль для TextView
который создается программно.
как реализовать style="@style/test"
программно?
Я посмотрел на Android разработчик документацию уже, но он не ответил на мой вопрос. Есть идеи?
3 ответов
динамическое изменение стиля в настоящее время не поддерживается. Необходимо задать стиль перед представлением create (в формате xml).
вы можете передать стиль конструктору view. Это можно сделать двумя способами:
-
использовать
ContextThemeWrapper
и настроить свой стиль в качестве темы для него:ContextThemeWrapper wrappedContext = new ContextThemeWrapper(yourContext, R.style.test); TextView testView = new TextView(wrappedContext, null, 0);
и важное примечание здесь-правильно установить стиль с ContextThemeWrapper
мы должны использовать конструктор с тремя аргументами и установить defStyleAttr
параметр равен 0. В противном случае к представлению будет применен стиль кнопки по умолчанию.
-
начиная с API 21 мы можем использовать конструктор с 4 параметрами:
View (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
здесь defStyleRes
ваш стиль ID
С тем же замечанием - defStyleAttr должен быть 0