约束不以工具栏为中心

Constraints not centered with toolbar

是否可以避免在 ConstraintLayout 中继承视图测量值? 我的意思是我有一个 Activity 显示工具栏和一个框架容器来显示片段。此片段垂直和水平居中,但在添加工具栏时,所有内容都会向下移动。

所以..有什么办法可以实现吗?

这取决于父容器。您可以使用

  • 约束布局
  • 相对布局
  • 运动布局

或其他相关类型布局,但您不能使用 LinearLayout,因为那样不允许您将子项移动到 LinearLayout 的其他部分。

接下来是父级 Activity 如果您打算允许自己在父级边界之外构建约束,则需要确保没有将 FrameLayout 放在工具栏下方。您的父级是 FrameLayout,因此如果它已经被向下推到工具栏下方,您将无法绑定到它的父级,除非您的绑定获得 parent.parent。

所以你有几个选择。

  1. 确保您的 Activity 不会将 FrameLayout 推到工具栏下方,以便 FrameLayout 始终与父级匹配而不受工具栏的影响(小心,因为您必须确保其他布局不会不要与 UI 中的工具栏区域重叠,因为它看起来很糟糕。
  2. 您可以在需要向上浮动的 UI 上使用负边距,这不是好的做法,我不推荐这样做。
  3. 您可以为 parent.parent 构建一个约束,因为这样您的约束就会绑定到框架布局父级而不是框架布局本身。

如果您需要更多帮助,请分享您的 XML 以便我帮助指出您可以进行调整的地方。

编码愉快!