在Android的ConstraintLayout中将文本居中于父级
我想在Android的在Android的ConstraintLayout中将文本居中于父级,android,android-constraintlayout,Android,Android Constraintlayout,我想在Android的ConstraintLayout中实现一个非常简单的顶栏布局: 有一个后退按钮(可以隐藏),有一个右按钮(可以隐藏),中间有一个文本标题。strong>最重要的是,我想让文本在父对象中居中 但是,当我绑定视图的边框时,标题文本会从中心推送,因为左视图和右视图的大小不同: 如您所见,标题未在父项中居中。显然,工作解决方案中的文本也不应相互重叠,标题应省略。所以这就像是一个“先进的屏障”从两边推进——一个更大的会迫使标题变小,但是标题总是在中间。 一种方法是使左视图和右视图的
ConstraintLayout
中实现一个非常简单的顶栏布局:
有一个后退按钮(可以隐藏),有一个右按钮(可以隐藏),中间有一个文本标题。strong>最重要的是,我想让文本在父对象中居中
但是,当我绑定视图的边框时,标题文本会从中心推送,因为左视图和右视图的大小不同: 如您所见,标题
未在父项中居中。显然,工作解决方案中的文本也不应相互重叠,标题应省略。所以这就像是一个“先进的屏障”从两边推进——一个更大的会迫使标题变小,但是标题总是在中间。
一种方法是使左视图和右视图的宽度相等,其余的将提供给标题视图,但是我找不到一种方法,使两个视图在不同的区域的宽度相等
在ConstraintLayout
中是否可能出现这种情况?在iOS的自动布局系统中很容易做到这一点,但它比安卓的ConstraintLayout功能强大得多。不过,我找不到一种方法,可以在相同宽度的不同区域创建两个视图
如果您想实现这样的目标,可以使用:
app:layout\u constraintWidth\u percent=“0.x”
根据屏幕大小告诉您的视图大小(并保持响应)
例如,类似这样的内容(我使用支持库制作,但它也可以与androidx一起使用):
现在,您的两个按钮正好占据屏幕宽度的10%,您可以告诉文本视图展开并占据剩余宽度(android:layout\u width=“0dp”
)
但是如果我有非常大的文本呢?
在这种情况下,如果要保持布局的响应性,可以使用[ssp()库
android SDK提供了一个新的大小单位——ssp(可伸缩sp)。该大小单位根据sp大小单位(用于文本)随屏幕大小进行缩放。它可以帮助android开发人员支持多个屏幕
然而,我找不到一种方法,使两个观点在不同的领域等宽度
如果您想实现这样的目标,可以使用:
app:layout\u constraintWidth\u percent=“0.x”
根据屏幕大小告诉您的视图大小(并保持响应)
例如,类似这样的内容(我使用支持库制作,但它也可以与androidx一起使用):
现在,您的两个按钮正好占据屏幕宽度的10%,您可以告诉文本视图展开并占据剩余宽度(android:layout\u width=“0dp”
)
但是如果我有非常大的文本呢?
在这种情况下,如果要保持布局的响应性,可以使用[ssp()库
android SDK提供了一个新的大小单位——ssp(可伸缩sp)。该大小单位根据sp大小单位(用于文本)随屏幕大小进行缩放。它可以帮助android开发人员支持多个屏幕
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button3"
android:layout_width="0dp"
app:layout_constraintWidth_percent="0.1"
android:layout_height="wrap_content"
android:text="<"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="TextView"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="@+id/button3"
app:layout_constraintEnd_toStartOf="@+id/button4"
app:layout_constraintStart_toEndOf="@+id/button3"
app:layout_constraintTop_toTopOf="@+id/button3" />
<Button
android:id="@+id/button4"
android:layout_width="0dp"
app:layout_constraintWidth_percent="0.1"
android:layout_height="0dp"
android:text="x"
app:layout_constraintBottom_toBottomOf="@+id/button3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/button3" />
</android.support.constraint.ConstraintLayout>