[英]AndroidStudio Problem with Relative Layout
我对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>
运行时视图看起来像这样
有人可以帮我,因为我很绝望。 我的英语不好,所以我接受编辑
尝试删除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>
将此id
赋予LinearLayout
:
android:id="@+id/layout"
并将此属性添加到etTexto
:
android:layout_above="@+id/layout"
还可以根据需要调整底部边距。
也许您应该尝试将其放在其上方的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"
以使其看起来像您想要的。
使用RelativeLayout
,而不是使用
android:layout_alignParentBottom="true"
android:layout_marginBottom="180dp"
就像您在使用ID @+id/etTexto
的EditText中所做的@+id/etTexto
,您只需编写以下代码即可: android:layout_below="@id/etMaximo2"
如果您想在两个之间添加更多空间,甚至可以放置android:layout_marginTop
两个视图。
PS要在设计视图中进行测试,请知道您可以更改要测试的设备的尺寸,因此您可以在“预览”窗口中查看在具有不同屏幕尺寸的设备上的外观。 您可以在预览窗口的顶部工具栏中更改此设置。
我希望这可以帮助你! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.