簡體   English   中英

與布局文件相比,Android 仿真器中的布局看起來不同

[英]Layout in Android Emulator looks different as compared to the layout file

最近開始學習Android開發。 我正在使用 Android Studio 並用它創建了 XML 布局文件。 但是模擬器上的布局看起來與我在 XML 上創建的布局不同,我不知道為什么會這樣。

這是我的主要活動布局的圖片:

img_mail_layout

這是我的模擬器的圖片:

img_emulator

純文本應該在文本視圖下方,但在模擬器中,它的 position 是不同的(我已將錯誤標記為紅色)。

這是主要活動的代碼:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="208dp"
    android:text="SUBMIT"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="80dp"
    app:layout_constraintBottom_toTopOf="@+id/button"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="44dp"
    android:text="Enter the value in kg below"
    android:textSize="25sp"
    android:textStyle="bold"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<EditText
    android:id="@+id/editTextNumber"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="number"
    tools:layout_editor_absoluteX="100dp"
    tools:layout_editor_absoluteY="73dp" />

我不確定為什么它在模擬器和預覽中以這種方式顯示,但 EditText 字段不在您想要的位置的原因是因為您設置了editTextNumber字段的 position :

tools:layout_editor_absoluteX="100dp" 
tools:layout_editor_absoluteY="73dp"

您正在告訴 Android 到 position 字段 100 像素和屏幕頂部向下 73 像素。 這很可能是因為您不小心在編輯器 window 中輕輕拖動了該字段,該編輯器指定了確切的像素位置。

相反,由於您使用的是 ConstraintLayout,因此您需要設置 EditText 相對於布局中其他字段的位置。 例如,刪除上面的兩行並將它們替換為如下內容:

app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"

我還建議您在布局上使用它們所代表的描述來命名您的字段,而不是textViewtextView2的默認值。 例如,考慮將textView2更改為weight_label_textview類的內容。 這將使您更容易知道您在布局和代碼中處理的是哪個字段。

當您使用約束布局時,每個 UI 項都必須垂直和水平約束。 嘗試向您的 EditText 添加約束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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