使用手机运行应用程序时,Android组件的位置不匹配

时间:2019-06-21 15:07:19

标签: android android-layout

我在来自activity_main.xml的设计布局中间放置了一个按钮,但是当我通过手机运行应用程序时,其位置与activity_main.xml内的设计不同。

试图将布局更改为相对布局,问题仍然存在。

<Button
    android:id="@+id/button5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="160dp"
    android:layout_marginLeft="160dp"
    android:layout_marginTop="276dp"
    android:text="Button"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

我希望通过实际的Android手机运行时activity_main的设计位置是相同的。

从设计布局开始

a busy cat

通过实际的手机

a busy cat

4 个答案:

答案 0 :(得分:0)

首先,您可能希望相对于其他组件调整按钮。即,尝试将按钮对齐到其他组件的顶部,或者也许将其对齐到另一个组件的底部。

请参阅此链接,其中包含所有信息

https://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams#attr_android:layout_alignBottom

如果您有任何疑问,请共享整个xml文件,以供我们参考。

答案 1 :(得分:0)

您只需更改<ConstraintLayout/>中的<RelativeLayout/>并用以下内容替换Button代码:

<Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Button" />

希望这会有所帮助。

答案 2 :(得分:0)

首先,从属性中删除该边距。在小密度设备中,左边缘使按钮向右移动,而上边缘使按钮在实际中心点下方移动。

因此,如果要在所有设备的屏幕中央添加按钮。请使用下面的代码,没有任何空白。但是,如果要在其他视图之间增加间距,请在其他视图中使用较小的空白。

<Button
    android:id="@+id/button5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

请参阅本指南以学习约束的基础知识:guide

答案 3 :(得分:0)

<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="#efeff1">

<Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Button" />
</RelativeLayout>