人生必须的知识就是引人向光明方面的明灯。这篇文章主要讲述元素将无法在Constraintlayout Android Studio中正确居中相关的知识,希望能为你提供帮助。
我有这样一个闪屏:
文章图片
但如果我打开我的应用程序,它将显示如下:
文章图片
这是我的XML布局:
<
?xml version="1.0" encoding="utf-8"?>
<
androidx.constraintlayout.widget.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="@android:color/holo_red_light"
tools:context=".SplashScreen">
<
ImageView
android:id="@+id/splash_icon"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginTop="160dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:srcCompat="@mipmap/ic_concas_icon" />
<
TextView
android:id="@+id/splash_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:text="GO Tools"
android:textColor="@android:color/white"
android:textSize="48sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@+id/splash_icon"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/splash_icon"
app:layout_constraintTop_toBottomOf="@+id/splash_icon" />
<
ProgressBar
android:id="@+id/splash_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="136dp"
app:layout_constraintEnd_toEndOf="@+id/splash_icon"
app:layout_constraintHorizontal_bias="0.506"
app:layout_constraintStart_toStartOf="@+id/splash_icon"
app:layout_constraintTop_toBottomOf="@+id/splash_icon" />
<
TextView
android:id="@+id/splash_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="204dp"
android:text="STATUS"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@+id/splash_icon"
app:layout_constraintHorizontal_bias="0.508"
app:layout_constraintStart_toStartOf="@+id/splash_icon"
app:layout_constraintTop_toBottomOf="@+id/splash_icon" />
我需要像Android Studio预览一样正确放置元素但是如果我启动我的应用程序仍然无法正常工作。有人知道怎么做吗?非常感谢!
编辑:图像将无法加载,但它已正确设置。
答案看起来你的布局还可以,但是如果你想让你的图像更多地显示在屏幕的顶部,你需要更改它,现在你要告诉你的图像居中于屏幕的中间,这样你所有的其他视图将放置在低于您的图像。一个好的解决方案是添加指南并将图像限制在指南而不是屏幕的顶部(这样您的图像将放置得更高,它将改变您的布局外观)例如:
<
androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<
ImageView
android:id="@+id/splash_icon"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginTop="8dp"
android:background="@color/buttonColor"
app:layout_constraintBottom_toTopOf="@+id/guideline3"
app:layout_constraintHorizontal_bias="0.488"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline3" />
<
TextView
android:id="@+id/splash_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:layout_marginBottom="8dp"
android:background="@color/buttonColor"
android:text="GO Tools"
android:textColor="@android:color/white"
android:textSize="48sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/splash_progress"
app:layout_constraintEnd_toEndOf="@+id/splash_icon"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/splash_icon"
app:layout_constraintTop_toBottomOf="@+id/splash_icon" />
<
ProgressBar
android:id="@+id/splash_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="136dp"
android:layout_marginBottom="8dp"
android:background="@color/buttonColor"
app:layout_constraintBottom_toTopOf="@+id/splash_status"
app:layout_constraintEnd_toEndOf="@+id/splash_icon"
app:layout_constraintHorizontal_bias="0.506"
app:layout_constraintStart_toStartOf="@+id/splash_icon"
app:layout_constraintTop_toBottomOf="@+id/splash_icon" />
<
TextView
android:id="@+id/splash_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="204dp"
android:layout_marginBottom="8dp"
android:background="@color/buttonColor"
android:text="STATUS"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/splash_icon"
app:layout_constraintHorizontal_bias="0.508"
app:layout_constraintStart_toStartOf="@+id/splash_icon"
app:layout_constraintTop_toBottomOf="@+id/splash_icon" />
<
androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.3"/>
<
/androidx.constraintlayout.widget.ConstraintLayout>
编辑:这可能适用于您的手机但我只是注意到您使用固定大小的视图 - 尽量避免这种情况,因为不同的手机有不同的手机大小
另一答案您的布局过于依赖于屏幕的大小,通过将视图相互约束并依赖各种边距和垂直偏差使其在设计器中工作。因此,当您移动到另一个屏幕大小时,布局不会按您想要的方式工作。
【元素将无法在Constraintlayout Android Studio中正确居中】请查看
ConstraintLayout
chains,了解如何对小部件进行分组,使其在所有屏幕尺寸中居中。我认为CHAIN_PACKED
链是你需要的。推荐阅读
- 如何改变AppBar的阴影颜色()
- 检测Android导航栏方向
- 无法将PowerBI Desktop和PowerBI WebApp与Google Analytics连接
- 与.NET Web应用程序和.NET Mobile App共享数据库
- 如何在WinForms C#中使用LiveCharts库创建饼图
- 使用C#在图像上进行隐写术(隐藏信息)入门
- 如何在PHP中使用Imagick检查图像是否具有透明度
- 如何在Symfony 3的Twig视图的Dates上使用time_diff和ago(time ago)函数
- 如何在Twig中有条件地扩展模板或导入宏