2

我有一个像这样的 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 的右侧。有没有更好的方法来做到这一点?

4

5 回答 5

1

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

你可以给你的 LinearLayout 一个 Id 并将你的文本放在它的右边。

于 2013-10-01T02:33:09.467 回答
0

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

于 2013-10-01T02:30:35.543 回答
0

android:layout_toRightOf="@id/imageIcon" 可以在您的视图处于相同的父布局但这里您的 TextView 在 LinearLayout 中时使用,因此如果您愿意,可以将 android:layout_toRightOf 提供给您的 LinearLayout。

于 2013-10-01T03:47:50.160 回答
0

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

getWindow().getAttributes().y = mLocY;
getWindow().getAttributes().x = mLocX;
于 2013-10-02T05:36:19.150 回答
0

不知何故,android工作室提供了一个解决方案,说这不是最佳实践,但您可以在 build.gradle (app) 中设置以下代码

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

在我要求 Studio 制作一个签名的 apk 之前,我的编译没有问题。然后问题发生了......我用上面的代码覆盖了它

于 2017-02-20T08:48:13.073 回答