我有一个工具栏视图的布局,其中左侧有一个ImageView,中央有TextView,右侧为零,一个或两个ImageView。而且我需要将TextView的文本居中放置在窗口的中心,而不是在左右图标之间的空间的中心。
这是我的布局代码
<?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="?attr/actionBarSize"
tools:background="@color/darkGreyTextColor">
<ImageView
android:id="@+id/leftIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/ic_hamburger" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/rightBarrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="left"
app:constraint_referenced_ids="rightFirstIcon,rightSecondIcon" />
<ImageView
android:id="@+id/rightFirstIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
app:layout_constraintBottom_toBottomOf="@+id/rightSecondIcon"
app:layout_constraintEnd_toStartOf="@+id/rightSecondIcon"
app:layout_constraintTop_toTopOf="@+id/rightSecondIcon"
tools:srcCompat="@drawable/ic_locate"
tools:visibility="visible" />
<ImageView
android:id="@+id/rightSecondIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/ic_search"
tools:visibility="visible" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:maxLines="1"
android:text="@{viewModel.navigationStatus.topNavigationTitle}"
android:textColor="@color/white"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/rightBarrier"
app:layout_constraintStart_toEndOf="@+id/leftIcon"
app:layout_constraintTop_toTopOf="parent"
tools:text="Test small text"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
我需要做些什么来始终将TextView中的文本居中放置在窗口的中心?
[一个选项可以是使用全角的编辑文本创建布局。然后在另一个布局中添加Imageview及其方向。最后,将第二个布局放在第一个布局的顶部。
正在讨论的UI,现在实现的是最好的,但是如果您在所有情况下都坚持要使其居于父级,这很简单,只需使布局依赖项引用父级即可:
app:layout_constraintEnd_toStartOf="parent"
app:layout_constraintStart_toEndOf="parent"