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

Я получаю представление от XML с кодом ниже:

Button view = (Button) LayoutInflater.from(this).inflate(R.layout.section_button, null);

Я хотел бы установить "стиль" для кнопки, как я могу сделать это в Java начиная с хотения использовать несколько стилей для каждой кнопки, которую я буду использовать.

98
задан Alex.F 13 February 2018 в 15:08
поделиться

1 ответ

Обычно стили нельзя изменить программно; можно настроить внешний вид экрана или части макета, или отдельной кнопки в XML-компоновке, используя темы или стили . Однако, темы могут быть применены программно .

Существует также такая вещь, как StateListDrawable , которая позволяет определить различные отрисовки для каждого состояния, в котором может находиться кнопка Button, независимо от того, сфокусирована ли она, выбрана, нажата, отключена и так далее.

Например, чтобы заставить Вашу кнопку изменить цвет после нажатия, Вы можете определить XML файл с именем res/drawable/my_button.xml каталог следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:state_pressed="true"
    android:drawable="@drawable/btn_pressed" />
  <item
    android:state_pressed="false"
    android:drawable="@drawable/btn_normal" />
</selector>

Затем Вы можете применить этот селектор к кнопке Button, установив свойство android:background="@drawable/my_button".

50
ответ дан 24 November 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: