toEndOf在自定义对话框布局中不起作用

时间:2019-02-21 16:00:07

标签: android android-layout

我正在创建一个自定义对话框,下部有两个按钮。这是布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/dialog_container">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/questiontitle"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:textSize="30sp"
    android:text="@string/newquestion"
    android:textStyle="bold"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/writequestion"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/questiontitle"
    android:text="@string/writequestion"
    android:textSize="20sp"/>

<EditText
    android:id="@+id/question"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/writequestion"
    android:layout_marginTop="30dp"
    android:hint="@string/questionhint" />

<TextView
    android:layout_width="1dp"
    android:layout_height="1dp"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/question"
    android:layout_marginTop="60dp"
    android:id="@+id/centerview"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/cancelbutton"
    android:text="@string/cancel"
    android:layout_below="@+id/question"
    android:layout_toStartOf="@+id/centerview"
    android:background="@drawable/buttonshape"
    android:layout_marginTop="40dp"/>

<Button
    android:id="@+id/okbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/question"
    android:layout_toEndOf="@+id/centerview"
    android:background="@drawable/buttonshape"
    android:layout_alignParentRight="true"
    android:text="@string/ok"
    android:layout_marginTop="40dp"/>

</RelativeLayout>

在“布局设计”选项卡的Android Studio中,它显示得很完美,但是在手机(三星J7)中运行时,“确定”按钮填充了父级宽度...为什么?我希望按钮与RelativeLayout的底部对齐,一个在另一个的左侧。

谢谢。

1 个答案:

答案 0 :(得分:0)

您遇到了一些错误的对齐方式,因此我为您修复了它们,通常,您确实以一种非常不错的方式完成了大部分工作。

对于以后的布局,我建议使用{{ 3}},它的确非常好,易于使用,并且能够响应不同的屏幕尺寸。

这是新的布局(我也在银河j7上进行了检查)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/questiontitle"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textSize="30sp"
        android:text="newquestion"
        android:textStyle="bold"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/writequestion"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/questiontitle"
        android:text="writequestion"
        android:textSize="20sp"/>

    <EditText
        android:id="@+id/question"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/writequestion"
        android:layout_marginTop="30dp"
        android:hint="questionhint" />

    <TextView
        android:layout_width="1dp"
        android:layout_height="1dp"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/question"
        android:layout_marginTop="60dp"
        android:id="@+id/centerview"/>

    <Button

        android:id="@+id/cancelbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/question"
        android:layout_marginTop="40dp"
        android:layout_marginEnd="30dp"
        android:layout_toEndOf="@+id/centerview"
        android:text="cancel" />

    <Button
        android:id="@+id/okbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/question"
        android:text="ok"
        android:layout_toStartOf="@+id/centerview"
        android:layout_marginTop="40dp"/>
</RelativeLayout>