【问题标题】:Missing constraint warning for Barrier - Bug?Barrier - Bug 缺少约束警告?
【发布时间】:2019-02-20 21:43:23
【问题描述】:

我在Barrier 上收到了缺少约束的警告,该警告已添加到ConstraintLayout 的(现在稳定的)版本1.1.0

这个视图没有约束,它只有设计时位置,所以它会跳转到 (0,0) 除非你添加约束

但是,据我所知,Barrier 没有使用任何约束,我认为甚至不可能添加它们

这是一个错误还是我遗漏了什么?

【问题讨论】:

  • 障碍通常位于视图的结尾或开头。准则是没有限制的准则
  • 但是障碍要么是全宽要么是全高,另一个维度由它包含的视图定义。
  • 显示一些代码以便我们了解更多

标签: android android-constraintlayout


【解决方案1】:

如果您在屏障上定义了 tools:layout_editor_absoluteX="123dp"tools:layout_editor_absoluteY="384dp" 之类的东西,只需将其删除,警告就会消失。

【讨论】:

  • 这会被认为是一个错误吗?或者这就是它应该的样子?
  • 视图不能被约束,仅仅因为布局编辑器有一个不应该影响布局的标志,并不意味着它应该抛出一个错误告诉你做不可能的事情。
【解决方案2】:

您是否遇到此类错误

尝试以这种方式添加障碍

<android.support.constraint.Barrier
    android:id="@+id/barrier"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:constraint_referenced_ids="view1,view2" />

【讨论】:

    【解决方案3】:

    也许你忘了指定 barrierDirection 参数:

        <android.support.constraint.Barrier
        android:id="@+id/barrier"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:barrierDirection="end"
        app:constraint_referenced_ids="view1,view2" />
    

    指定要结束的“barrierDirection”将通知屏障定位在引用的 id 中指定的最宽视图的末尾。

    但在设计时,您的设计师可能不会刷新屏障位置......就像我的情况一样: barrier constraint not calculated on designer

    编辑: 清理缓存并迁移到 ConstraintLayout '2.0.0-alpha3' 后,Barrier 会在设计时正确显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-02
      • 2019-10-22
      • 2018-12-12
      • 2021-06-13
      • 2019-12-30
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多