Как настроить атрибут стиля программно в Android?

Мне нужно установить стиль для TextView, который создается программно.

Как реализовать style="@style/test" программно?

Я уже смотрел документацию по дизайну Android для Android, но он не ответил на мой вопрос. Любые идеи?

Ответ 1

Динамическое изменение стиля в настоящее время не поддерживается. Вы должны установить стиль перед созданием представления (в xml).

Ответ 2

setTypeface(Typeface.DEFAULT_BOLD, Typeface.BOLD_ITALIC);

Это работает для меня

Ответ 3

Вы можете передать стиль для просмотра конструктора. Это можно сделать двумя способами:

  • Используйте ContextThemeWrapper и настройте свой стиль как тему для него:

    ContextThemeWrapper wrappedContext = new ContextThemeWrapper(yourContext, R.style.test);
    TextView testView = new TextView(wrappedContext, null, 0);
    

И важно отметить, что для правильного задания стиля с помощью ContextThemeWrapper нам нужно использовать конструктор с тремя аргументами и установить параметр defStyleAttr равным 0. В противном случае к представлению будет применен стиль кнопки по умолчанию.

  1. Начиная с API 21, мы можем использовать конструктор с 4 параметрами:

    View (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
    

Где defStyleRes - ваш идентификатор стиля

С тем же замечанием - defStyleAttr должно быть 0