Как установить атрибут стиля программно в Android? - PullRequest
9 голосов
/ 14 июля 2010

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

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

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

Ответы [ 3 ]

25 голосов
/ 14 июля 2010

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

3 голосов
/ 30 января 2013
setTypeface(Typeface.DEFAULT_BOLD, Typeface.BOLD_ITALIC);

у меня работает

2 голосов
/ 05 февраля 2017

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

  1. Используйте 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 - ваш идентификатор стиля

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...