【发布时间】:2017-03-23 21:27:54
【问题描述】:
我有 XML 布局代码:
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:bind="http://schemas.android.com/apk/res-auto">
<data>
<variable name="info" type="com.mycompany.orm.binders.MyBinderObject"/>
</data>
<android.support.percent.PercentRelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:gravity="end">
...
这很好用。但是,我在MyBinderObject 中有一个名为mygravity 的属性,它被设置为两个字符串之一:start 或end。我想弄清楚如何读取 Data Binding 属性 mygravity 以将重力分配给布局。
即android:gravity="@{info.mygravity}"(但是,此行不起作用。编译时数据绑定代码失败)。
有谁知道如何根据数据绑定对象属性动态设置android:gravity?
【问题讨论】:
-
"它被设置为两个字符串之一" --
android:gravity不接受字符串。它采用一组枚举属性值中的一个。我的猜测是您需要将该字符串转换为the equivalentGravityconstant。 -
是的!就是这样。我没有意识到
gravity实际上是一个枚举属性。把这个放在答案中,我会接受。
标签: java android layout data-binding