1

我正在使用数据绑定,并且正在尝试编写一些设置。我有一个视图,我想通过自定义属性(传入枚举)确定其布局。例如传入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 充气。

我知道我可以通过自定义属性/样式来做到这一点,但我想知道它是否可以通过数据绑定来实现。

4

1 回答 1

0

不可以。为了在膨胀期间查看属性值,您不能使用数据绑定语法。数据绑定将从 XML 中剥离值并将其添加到生成的绑定代码中。

相反,将属性添加到 attrs.xml 文件并使用正常语法分配值。然后,您可以使用 读取属性context.obtainedStyledAttributes()并通过TypedArray.

于 2017-06-12T16:45:12.373 回答