android studio XML布局未对齐

时间:2019-03-17 18:52:54

标签: android xml layout

我有一个XML脚本,并且在android studio编辑器中,预览窗口显示了应该显示的屏幕(请参见下图)。在仿真器上运行时,看起来所有组件都在移动位置。

这是布局的代码

<?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="match_parent"
    android:background="@color/colorWhite"
    tools:context="com.example.ansel.companionapp.Main_menu">

    <ImageView
        android:id="@+id/logo"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="40dp"
        android:layout_marginEnd="113dp"
        android:src="@drawable/companionapp" />


    <TextView
        android:id="@+id/infoText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/logo"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="24dp"
        android:paddingTop="20dp"
        android:text="Large Text"
        android:textColor="@color/colorPrimary"
        android:textSize="18dp" />

    <Button
        android:id="@+id/TPS_button"
        android:layout_width="146dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/infoText"
        android:layout_alignStart="@+id/infoText"
        android:layout_marginStart="-25dp"
        android:layout_marginTop="53dp"
        android:background="@drawable/button_shape"
        android:onClick="TPS"
        android:text="@string/ThirdPersonShooter"
        android:textColor="@color/colorWhite" />

    <Button
        android:id="@+id/TDS_Button"
        android:layout_width="146dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/TPS_button"
        android:layout_alignStart="@+id/infoText"
        android:layout_marginStart="-23dp"
        android:layout_marginTop="38dp"
        android:background="@drawable/button_shape"
        android:onClick="TwoDS"
        android:text="@string/TwoDimensionalShooter"
        android:textColor="@color/colorWhite" />


</RelativeLayout>

这是我想要的布局与实际布局。

Desired Layout

Actual layout

1 个答案:

答案 0 :(得分:2)

我删除了所有负边距和对齐方式,并为所有视图添加了

android:layout_centerHorizontal="true"

所以检查一下:

<?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="match_parent"
    android:background="@color/colorWhite"
    tools:context="com.example.ansel.companionapp.Main_menu">

    <ImageView
        android:id="@+id/logo"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp"
        android:src="@drawable/companionapp" />

    <TextView
        android:id="@+id/infoText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/logo"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="24dp"
        android:paddingTop="20dp"
        android:text="Large Text"
        android:textColor="@color/colorPrimary"
        android:textSize="18dp" />

    <Button
        android:id="@+id/TPS_button"
        android:layout_width="146dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/infoText"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="53dp"
        android:background="@drawable/button_shape"
        android:onClick="TPS"
        android:text="@string/ThirdPersonShooter"
        android:textColor="@color/colorWhite" />

    <Button
        android:id="@+id/TDS_Button"
        android:layout_width="146dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/TPS_button"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="38dp"
        android:background="@drawable/button_shape"
        android:onClick="TwoDS"
        android:text="@string/TwoDimensionalShooter"
        android:textColor="@color/colorWhite" />
</RelativeLayout>