Как получить и установить атрибут стиля в коде? - PullRequest
0 голосов
/ 09 сентября 2018

Предположим, следующий код:

          <MyCustomComponent
            style="@style/Base.TextAppearance.AppCompat.Headline"
            android:padding="@dimen/padding_default"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

В пользовательском компоненте у меня есть EditText, который мне нужно установить для его атрибута стиля равным @style/Base.TextAppearance.AppCompat.Headline в коде Java, согласно атрибуту style в макете. Как я могу это сделать?

Я создаю пользовательский компонент, поэтому мне также нужно знать, какой стиль был выбран в макете пользователем моего компонента. Это доступно через AttributeSet? Если да, пожалуйста, дайте мне знать, как?

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Определите собственный стиль в style.xml следующим образом:

<style name="MyHeadlineTextAppearance" parent="Base.TextAppearance.AppCompat.Headline"/>

Затем установите его в TextView, как показано ниже:

textView.setTextAppearance(context, R.style.MyHeadlineTextAppearance);
0 голосов
/ 09 сентября 2018

Для программного оформления TextView s вы должны иметь стиль, наследующий стиль TextAppearance, и вы можете применить его, используя следующий код:

if (Build.VERSION.SDK_INT < 23) { textView.setTextAppearance(context,android.R.style.TextAppearance_Small); } else { textView.setTextAppearance(android.R.style.TextAppearance_Small); }
...