如何使用RelativeLayout将按钮对齐到ImageView的右侧

时间:2014-12-18 22:32:02

标签: android android-layout alignment relativelayout

我正在努力进行简单的相对布局。它应该在左边有一个图像,在右边有一列其他视图。垂直对齐是正确的,但即使我要求它们在右侧,水平对齐也非常令人费解,图像左侧的按钮。 任何人都可以解释:

  • 为什么会这样,
  • 如何实现我想要的安排。

这是布局xml和截图:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/widget51"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

  <ImageView
      android:id="@+id/ivLove"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentTop="true"
      android:layout_alignParentLeft="true"
      android:layout_centerHorizontal="true"
      />

  <TextView
      android:id="@+id/tvDate"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentTop="true"
      android:hint="Image name"
      android:layout_toRightOf="@+id/ivImage"
      />

  <TextView
      android:id="@+id/tvPage"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:hint="Page URL"
      android:layout_below="@+id/tvDate"
      android:layout_toRightOf="@+id/ivImage"
      />

  <Button
      android:id="@+id/btnNext"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Next"
      android:layout_below="@+id/tvPage"
      android:layout_toRightOf="@+id/ivImage"
      />

  <Button
      android:id="@+id/btnPrevious"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Previous"
      android:layout_below="@+id/btnNext"
      android:layout_toRightOf="@+id/ivImage"
      />

</RelativeLayout>

enter image description here

如果您想知道图片,请参阅Android : Simple HTML parsing & image downloader using AsyncTask

1 个答案:

答案 0 :(得分:2)

您将这些控件(TextViewButton)放在ImageView的右侧,ID为 ivImage

但是,您的布局不包含任何具有该ID的ImageView(但具有 ivLove 的一个)。 控件显示在左侧,因为这是RelativeLayout内视图的默认停靠。

尝试更新您的参考资料(将每个“ ivImage ”替换为“ ivLove ”。

注意 - 如果您使用Eclipse ,那么您没有遇到编译错误的原因是您的某个地方可能有一个ImageView android:id="ivImage"项目。启用(并且可能更新)lint将帮助您过滤这些类型的问题。