相对布局中的按钮不受设置布局边距的影响

时间:2011-06-08 18:42:13

标签: android user-interface button dialog

带有Dialog的自定义RelativeLayout框包含Button窗口小部件,无论方向如何,都不会更改其边距。这是xml:


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:orientation="horizontal" android:background="#99000000">
    <TextView android:id="@+id/dialogtitle" android:layout_width="fill_parent"
         android:layout_height="wrap_content" android:text="Some text" />
    <TextView android:id="@+id/dialogtext" android:layout_width="300dp"
        android:layout_height="wrap_content" android:textSize="15dp"
        android:layout_alignParentLeft="true" android:layout_below="@id/dialogtitle"
        android:paddingLeft="8dp" />
    <Button android:id="@+id/dialogbuttoninfo" android:layout_width="80dp"
        android:layout_height="wrap_content" android:text="Doesn't care about margins"
        android:layout_alignParentRight="true" android:layout_marginLeft="128dp" />
</RelativeLayout>

填充有效,但仅移动按钮内的文本。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

这看起来很糟糕,但您是否尝试将其全部放在LinearLayout中?或者可能删除android:orientation="horizontal"。我不认为RelativeLayout关心我所看到的方向。我认为,但可能是错误的,如果你做了LinearLayout,那么你也不需要android:layout_alignParentLeft="true"

稍微清理了一下(对不起,但是当它在问题中被压缩时很难阅读)你也没有说明最后TextViewdialogbuttoninfo应该在哪里相对于其他一切,我认为你必须这样做Relative layouts才能正常行事,我发生了一些奇怪的事情。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#99000000">
    <TextView
        android:id="@+id/dialogtitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Some text" />
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
        <TextView
            android:id="@+id/dialogtext"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:layout_alignParentLeft="true"
            android:paddingLeft="8dp" />
        <Button
            android:id="@+id/dialogbuttoninfo"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="Doesn't care about margins"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="128dp" />
    </LinearLayout>
</LinearLayout>

答案 1 :(得分:1)

在边距具有真正意义之前,您可能需要将按钮左侧与某些东西对齐。