我正在尝试设置视图的以下属性:
android:layout_toRightOf="@{}"
带数据绑定。我知道android会为camelCase中的每个视图转换id。当我做的时候
<RelativeLayout>
<TextView
android:layout_toRightOf="@{layoutFlag ? myButton : myImageButton }"
/>
<Button
android:id="@+id/my_button"/>
<ImageButton
android:id="@+id/my_image_button"/>
</RelativeLayout>
但是我收到以下错误:
Error:(79, 45) Cannot find the setter for attribute 'android:layout_toRightOf' with parameter type android.view.View on android.widget.TextView.
答案 0 :(得分:0)
尝试传递视图中的id,而不是实际视图。
@ {layoutFlag? “+ @ id / my_button”:“+ @ id / my_image_button”}
答案 1 :(得分:0)
似乎你缺少对象的引用。您的陈述应该更像:
android:layout_toRightOf="@{layoutFlag ? yourClass.myButton : yourClass.myImageButton }" />
在你的布局文件中使用它:
<data>
<variable name="yourClass" type="com.example.YourClass"/>
</data>
请查看Data Binding
https://developer.android.com/topic/libraries/data-binding/index.html
使用您提供的有限代码很难给出详细答案。