首页 > 解决方案 > 模拟器中视图的位置与布局不同

问题描述

我的模拟器中小部件的位置正在改变,即使我改变了它仍然在不同位置的边距。

我该如何解决?我的 XML 代码似乎与 UI 不匹配,其他布局似乎没问题,这是我唯一有问题的布局。

谢谢你的帮助 :)

这是我的xml代码:

<android.support.constraint.ConstraintLayout 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"
android:background="@drawable/bg"
tools:context=".LoadingScreen"
tools:layout_editor_absoluteY="25dp">


<TextView
    android:id="@+id/scissors"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="172dp"
    android:layout_marginEnd="30dp"
    android:fontFamily="@font/bungee_inline"
    android:text="@string/scissors"
    android:textColor="@color/colorPrimary"
    android:textSize="60sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent" />

<TextView
    android:id="@+id/rock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="17dp"
    android:layout_marginEnd="19dp"
    android:fontFamily="@font/bungee_inline"
    android:text="@string/rock"
    android:textColor="@color/colorPrimaryDark"
    android:textSize="60sp"
    app:layout_constraintBottom_toTopOf="@+id/paper"
    app:layout_constraintEnd_toEndOf="@+id/paper" />

<TextView
    android:id="@+id/paper"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="49dp"
    android:fontFamily="@font/bungee_inline"
    android:text="@string/paper"
    android:textColor="@android:color/holo_red_light"
    android:textSize="60sp"
    [![enter image description here][1]][1]app:layout_constraintBottom_toTopOf="@+id/scissors"
    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="59dp"
    android:text="@string/press_start"
    android:textColor="@color/colorPrimary"
    android:textSize="20sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

</android.support.constraint.ConstraintLayout>

这是我的布局和模拟器图像: 在此处输入图像描述在此处输入图像描述

标签: javaandroid

解决方案


您的布局中只有一点问题,即您以不一致的方式使用了边距属性。例如,layout_marginRight="19dp" 将需要比其他一些设备更多的空间,具体取决于它们的设备配置和大小。所以,你应该使用你的布局,如下所示,

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#001235">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:text="ROCK"
        android:textColor="@android:color/white"
        android:textSize="40sp"
        app:layout_constraintBottom_toTopOf="@+id/textView2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:text="PAPER"
        android:textColor="@android:color/white"
        android:textSize="40sp"
        app:layout_constraintBottom_toTopOf="@+id/textView3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:text="SCISSOR"
        android:textColor="@android:color/white"
        android:textSize="40sp"
        app:layout_constraintBottom_toTopOf="@+id/textView4"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView2" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:text="<<Press to Start>>"
        android:textColor="@android:color/white"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView3" />
</android.support.constraint.ConstraintLayout>

这在几乎所有设备中几乎相同。始终尝试尽可能多地提供动态而不是静态的属性值


推荐阅读