簡體   English   中英

相對布局的AndroidStudio問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM