找不到属性android的setter:layout_toRightOf

时间:2017-10-05 01:15:30

标签: android

我正在尝试设置视图的以下属性:

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. 

2 个答案:

答案 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

上的Android文档

https://developer.android.com/topic/libraries/data-binding/index.html

使用您提供的有限代码很难给出详细答案。