Android相对布局“不是兄弟”错误

时间:2013-10-01 02:26:03

标签: android android-layout relativelayout

我有一个像这样的3列布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ... />
  <LinearLayout>
    <LinearLayout>
       <ImageView
          android:id="@+id/imageIcon" />
       ....
    </LinearLayout>
    <LinearLayout>
      ....
    </LinearLayout>
    <LinearLayout>
      ....
    </LinearLayout>
  </LinearLayout>
  <TextView 
     android:layout_toRightOf="@id/imageIcon" />
</RelativeLayout>

我在代码的TextView部分遇到“不是兄弟”错误。 TextView的用途就像一个“帮助”显示。我正在尝试确保TextView始终位于该ImageView的右侧。这样做有更好的方法吗?

5 个答案:

答案 0 :(得分:1)

android:layout_toRightOf用于在相对布局中定位元素,但您的ImageView位于LinearLayout内。

您可以为LinearLayout指定ID,并将文本放在右侧。

答案 1 :(得分:0)

如果要将两个视图对齐,它们必须位于同一父布局中。正如您将从布局中注意到的那样,TextView不在您的ImageView所在的LinearLayout内。我建议尝试将TextView与ImageView所在的LinearLayout对齐。

答案 2 :(得分:0)

android:layout_toRightOf =“@ id / imageIcon”可以在你的视图处于相同的父布局时使用,但是你的TextView在LinearLayout中,所以如果你想要你可以给你的LinearLayout提供android:layout_toRightOf。

答案 3 :(得分:0)

我最终使用了自定义对话框。我必须计算对话框的正确位置并使用以下方法设置值:

getWindow().getAttributes().y = mLocY;
getWindow().getAttributes().x = mLocX;

答案 4 :(得分:0)

不知何故,android studio提供了一个解决方案,说这不是最好的做法,但你可以在build.gradle(app)下面设置代码

android {     lintOptions {         checkReleaseBuilds false         abortOnError为false     } ....... ///其余的代码 }

在我要求Studio制作签名的apk之前,我没有遇到编译问题。然后出现问题......我用上面的代码

覆盖了它