0

我有一个问题RelativeLayout。在设计视图中,我可以看到我的布局工作完美,但在运行时,一个EditText从屏幕上消失了。

这是我的布局的一些代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<TextView
    android:id="@+id/tvInicio"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="23dp"
    android:text="@string/dialog_titulo"
    android:textColor="@color/colorPrimary"
    android:textSize="24sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/tvPrimero"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="85dp"
    android:text="@string/dialog_max"
    android:textColor="@color/colorPrimary"
    android:layout_alignParentLeft="true" />

<EditText
    android:id="@+id/etMaximo"
    android:layout_width="111dp"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/tvPrimero"
    android:layout_alignParentEnd="true"
    android:ems="10"
    android:hint="@string/dialog_etMax"
    android:inputType="number"
    android:layout_alignParentRight="true" />

<EditText
    android:id="@+id/etMinimo"
    android:layout_width="111dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="151dp"
    android:ems="10"
    android:hint="@string/dialog_etMin"
    android:inputType="number"
    android:layout_alignParentRight="true" />

<TextView
    android:id="@+id/tvSegundo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/etMinimo"
    android:text="@string/dialog_maxmin"
    android:textColor="@color/colorPrimary"
    android:layout_alignParentLeft="true" />

<EditText
    android:id="@+id/etMaximo2"
    android:layout_width="111dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_below="@+id/tvSegundo"
    android:ems="10"
    android:hint="@string/dialog_etMax"
    android:inputType="number"
    android:layout_alignParentRight="true" />

<TextView
    android:id="@+id/tvTexto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/etTexto"
    android:layout_alignParentStart="true"
    android:text="@string/diaog_textoTitulo"
    android:textColor="@color/colorPrimary"
    android:layout_alignParentLeft="true" />

<EditText
    android:id="@+id/etTexto"
    android:layout_width="193dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_marginBottom="180dp"
    android:ems="10"
    android:hint="@string/diaog_etTextoTitulo"
    android:inputType="textPersonName"
    android:layout_alignParentRight="true" />

<LinearLayout
    android:layout_width="360dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true">

    <Button
        android:id="@+id/btnCancelar"
        android:layout_width="176dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="19dp"
        android:layout_toLeftOf="@+id/etTexto"
        android:layout_toStartOf="@+id/etTexto"
        android:background="@drawable/boton_redondeado2"
        android:text="@string/iniciar_sesion_cancelar"
        android:textColor="@android:color/background_light" />

    <Button
        android:id="@+id/btnGuardar"
        android:layout_width="178dp"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/btnCancelar"
        android:layout_marginEnd="9dp"
        android:layout_marginRight="9dp"
        android:background="@drawable/boton_redondeado"
        android:text="@string/diaog_guardar"
        android:textColor="@android:color/background_light" />

</LinearLayout>

看这里

运行时视图如下所示

有人可以帮助我,因为我很绝望。我的英语不好,所以我接受编辑

4

4 回答 4

1

使用时RelativeLayout,而不是使用

android:layout_alignParentBottom="true"
android:layout_marginBottom="180dp"

就像您在带有 id 的 EditText 中所做的那样@+id/etTexto,您可以简单地编写以下代码:如果您想在两个视图之间添加更多空间,android:layout_below="@id/etMaximo2" 您甚至可以放置一些代码。android:layout_marginTop

PS 对于设计视图中的测试,知道您可以更改您正在测试的设备的尺寸,因此您可以在“预览”窗口中看到它在具有不同屏幕尺寸的设备上的外观。您可以在预览窗口的顶部工具栏中更改此设置。

我希望这可以帮助你!:)

于 2018-11-10T12:20:56.357 回答
0

也许您应该尝试将其放在其上方的 EditText 下方?

消除

android:layout_alignParentBottom="true"
android:layout_marginBottom="180dp"

添加

android:layout_below="@+id/etMaximo2"

结果

<EditText
    android:id="@+id/etTexto"
    android:layout_width="193dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_below="@+id/etMaximo2"
    android:ems="10"
    android:hint="@string/diaog_etTextoTitulo"
    android:inputType="textPersonName"
    android:layout_alignParentRight="true" />

然后设置一些上边距android:layout_marginTop="{some value}dp",使其看起来像你想要的。

于 2018-11-10T12:15:34.693 回答
0

尝试删除android:layout_alignParentEnd="true",然后在清理后清理您的项目,再次运行。确保您的相对布局在线性结束后立即关闭 </LinearLayout> </RelativeLayout>

它现在有效吗?

我使用了这个 xml,它在 Nexus 5 模拟器上运行

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 <TextView
    android:id="@+id/tvInicio"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="23dp"
    android:text="TEST"
    android:textColor="@color/colorPrimary"
    android:textSize="24sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/tvPrimero"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="85dp"
    android:text="test"
    android:textColor="@color/colorPrimary"
    android:layout_alignParentLeft="true" />

<EditText
    android:id="@+id/etMaximo"
    android:layout_width="111dp"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/tvPrimero"
    android:layout_alignParentEnd="true"
    android:ems="10"
    android:hint="test"
    android:inputType="number"
    android:layout_alignParentRight="true" />

<EditText
    android:id="@+id/etMinimo"
    android:layout_width="111dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="151dp"
    android:ems="10"
    android:hint="test"
    android:inputType="number"
    android:layout_alignParentRight="true" />

<TextView
    android:id="@+id/tvSegundo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/etMinimo"
    android:text="test"
    android:textColor="@color/colorPrimary"
    android:layout_alignParentLeft="true" />

<EditText
    android:id="@+id/etMaximo2"
    android:layout_width="111dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_below="@+id/tvSegundo"
    android:ems="10"
    android:hint="test"
    android:inputType="number"
    android:layout_alignParentRight="true" />

<TextView
    android:id="@+id/tvTexto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/etTexto"
    android:layout_alignParentStart="true"
    android:text="test"
    android:textColor="@color/colorPrimary"
    android:layout_alignParentLeft="true" />

<EditText
    android:id="@+id/etTexto"
    android:layout_width="193dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"

    android:layout_marginBottom="180dp"
    android:ems="10"
    android:hint="this should stay right here"
    android:inputType="textPersonName"
    android:layout_alignParentRight="true" />

<LinearLayout
    android:layout_width="360dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true">

    <Button
        android:id="@+id/btnCancelar"
        android:layout_width="176dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="19dp"
        android:layout_toLeftOf="@+id/etTexto"
        android:layout_toStartOf="@+id/etTexto"
        android:background="@color/colorPrimary"
        android:text="button"
        android:textColor="@android:color/background_light" />

    <Button
        android:id="@+id/btnGuardar"
        android:layout_width="178dp"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/btnCancelar"
        android:layout_marginEnd="9dp"
        android:layout_marginRight="9dp"
        android:background="@color/colorAccent"
        android:text="button"
        android:textColor="@android:color/background_light" />

</LinearLayout>
</RelativeLayout>
于 2018-11-10T11:49:47.593 回答
0

把这个id交给LinearLayout

android:id="@+id/layout"

并将此属性添加到etTexto

android:layout_above="@+id/layout"

还可以根据需要调整下边距。

于 2018-11-10T11:55:39.940 回答