java - 模拟器中视图的位置与布局不同
问题描述
我的模拟器中小部件的位置正在改变,即使我改变了它仍然在不同位置的边距。
我该如何解决?我的 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>
解决方案
您的布局中只有一点问题,即您以不一致的方式使用了边距属性。例如,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>
这在几乎所有设备中几乎相同。始终尝试尽可能多地提供动态而不是静态的属性值
推荐阅读
- sockets - 如何在 SWI Prolog 中向 tcp 套接字发出请求并处理响应?
- neo4j - Neo4J 转储数据库
- github - 有没有办法查看 github 存储库从公共切换到私有的日期,反之亦然
- reactjs - Bootstrap 不能像使用 React.js(springboot API)那样使用构建
- javascript - JavaScript 扩展 - 用鼠标将多个 YouTube 视频标记为“无趣”
- excel - 如何从活动单元格中选择基于 A 列的最后一个条目?
- asp.net-core - 缺少客户端密钥或客户端证书
- git - 无法使用 Windows 使用 ssh 密钥访问 gitlab 存储库
- c - 通过 fgets 在 c 中的 while 循环中输入一个数字
- javascript - 为什么 tr 中的 onClick 方法没有调用 foreach Laravel 5 中的函数