为什么RelativeLayout右边有空格?

时间:2012-08-30 21:58:56

标签: android android-layout relativelayout gravity

我有两个相同大小,相同大小的RelativeLayouts,带有一些文字和一个我希望与右侧对齐的图像。然而,似乎有某种填充不允许我把它放在右边,即使我从未指定过这个。

enter image description here

这是我的代码:

<LinearLayout
    android:baselineAligned="false"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <RelativeLayout
        android:id="@+id/my_relativelayout"
        android:background="@drawable/my_background"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:gravity="right">
        <TextView
            android:id="@+id/my_textview"
            android:textAppearance="?android:attr/textAppearanceButton"
            android:layout_centerVertical="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </TextView>
        <ImageView
            android:id="@+id/my_imageview"
            android:layout_centerVertical="true"
            android:scaleType="center"
            android:src="@drawable/my_image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/my_textview">
        </ImageView>
    </RelativeLayout>

    <RelativeLayout
        ... same thing here ...>
    </RelativeLayout>

</LinearLayout>

编辑:空白空间不是另一个RelativeLayout。另一个RelativeLayout是另一个带有文本和图像的“蓝色矩形”,并且还遇到了右侧空间的问题。像这样:

enter image description here

5 个答案:

答案 0 :(得分:0)

这是因为您使用的是android:layout_toRightOf属性。这会将当前视图的左边缘与您引用的视图的右边缘对齐(my_textview)。如果您希望视图的右侧与父级的右侧匹配,请尝试使用android:layout_alignParentRight="true"

答案 1 :(得分:0)

尝试这种布局:

    <ImageView
        android:id="@+id/my_imageview"
        android:layout_centerVertical="true"
        android:scaleType="center"
        android:src="@drawable/my_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:Layout_alignParentRight="true">
    <TextView
        android:id="@+id/my_textview"
        android:textAppearance="?android:attr/textAppearanceButton"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/my_imageview">
    </TextView>

答案 2 :(得分:0)

检查您在图像视图中使用的图像边界(在图像编辑器中)。看起来图像中有一些透明区域导致混淆/问题。

如果不是问题:试试这个 为alignParentRight="true"添加属性ImageView 代替 android:gravity="right" RelativeLayout不适用于{{1}}

答案 3 :(得分:0)

最终工作的解决方案是

android:paddingRight="0dip"

在每个RelativeLayouts中,奇怪的是,虽然我从来没有说过应该有任何填充。我一直试图在DAYS中解决这个问题。感谢大家的意见!

答案 4 :(得分:-1)

由于您的LinearLayout具有水平布局android:orientation="horizontal",因此第一个RelativeLayout旁边的任何对象都会占用该空间,在您的情况下,该对象看起来像第二个RelativeLayout {{1}} 1}}。

如果这没有帮助,我会尝试调整这两个相对布局的layout_weight和layout_width属性。