2017-06-10 25 views
1

我正在使用数据绑定,我试图编写一些设置。我有一个视图,我想要通过自定义属性(传入枚举)来确定其布局。例如,传入Setting.CHECKBOXSetting.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,但我想知道是否可以通过数据绑定来实现。

回答

0

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

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

+0

我很害怕这个。哦,谢谢,乔治(也感谢真棒教程)! – Vas

相关问题