Есть ли способ прочитать атрибут представления через привязку данных во время создания представления?
Я использую привязку данных и пытаюсь составить некоторые настройки. У меня есть представление, макет которого я хочу определить с помощью пользовательского атрибута (передавая перечисление). Например, передавая либо Setting.CHECKBOX
или же Setting.SWITCH
должен позволить мне накачать соответствующий элемент управления для просмотра. Представление будет определено так:
<data>
<import type="com.mypackage.ui.SettingView.SettingControl" />
<SettingView
android:id="@+id/setting_foo
android:layout_width="match_parent"
android:layout_height="wrap_content"
setting:control="@{Setting.CHECKBOX} />
...
Есть ли способ, которым я могу прочитать это setting:control
атрибут до раздувания макета? Основываясь на настройке, я хочу указать, как раздувать SettingView.
Я знаю, что могу сделать это с помощью пользовательских атрибутов / styleables, но мне было интересно, можно ли это сделать с помощью привязки данных.
1 ответ
Нет. Чтобы посмотреть на значение атрибута во время инфляции, вы не можете использовать синтаксис привязки данных. Привязка данных удалит значение из XML и добавит его в сгенерированный код привязки.
Вместо этого добавьте атрибут в файл attrs.xml и присвойте значение, используя обычный синтаксис. Затем вы можете прочитать атрибут, используя context.obtainedStyledAttributes()
и доступ к значению через TypedArray
,