android - 如何在 ConstraintLayout 中将视图居中而不重叠不均匀的邻居
问题描述
我正在为我的标题栏使用自定义布局,基于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"
推荐阅读
- php - 如果页面加载时间过长
- bash - 如何找到最新的子目录
- webdriver-io - 在使用 webdriver.io 为我的测试自动化设置 codeceptjs 时,我遇到了一个与语法相关的问题
- c# - Unity - 如何制作设置菜单?
- typescript - 递归排除 Typescript 中的只读属性
- c - C 如何将逗号放入浮点数?
- google-cloud-platform - 当前通过系统表在 Google Bigquery 中运行的查询
- c - 使用C将int数组转换为字符串
- python - 当数组中元素的 len 大于 2 时,“解包的值太多(预期为 2)”
- c# - 如何使用 SignalR 向 C# 中的特定用户发送数据?