首页 > 解决方案 > 如何在 ConstraintLayout 中将视图居中而不重叠不均匀的邻居

问题描述

我正在为我的标题栏使用自定义布局,基于ConstraintLayout. 我需要将标题文本居中而不重叠两侧的按钮。目前我的标题在侧边按钮之间居中,但由于它们的宽度不同,所以标题不在父视图中居中。

这是它当前的样子(在两个按钮之间居中,而不是在父按钮中居中):

当前标题栏布局

有什么方法可以使标题在父项中居中,同时确保它不会与任一侧的按钮文本重叠(因为这可以改变)?

为了使它更复杂,如果没有空间完整显示两者,我还希望它是被压缩的标题而不是按钮文本。

如果我将标题的两个边缘都限制为父级并将其设置为换行宽度,那么它几乎可以工作,直到按钮文本变得有点长。

标签: androidandroid-constraintlayout

解决方案


要使视图居中,您可以在将视图的两侧连接到其他视图时给出 layout_width = "0dp" 。然后中心视图占据视图左侧的位置

更新

如果你想在父母内部居中,那么其他人的观点就是你的父母。

android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:ellipsize = "end"
android:maxLines = "1"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintTop_toTopOf = "parent"
app:layout_constraintBottom_toOf = "parent"

推荐阅读