首页 > 解决方案 > 约束布局布局崩溃:约束布局的所有子项都应具有使用约束集的 ID

问题描述

更新到之后com.android.support.constraint:constraint-layout:1.1.0

约束布局崩溃说:

约束布局的所有孩子都应该有 id 来使用约束集

我已经为所有视图设置了 ID,即使它崩溃了。

java.lang.RuntimeException: All children of ConstraintLayout must have ids to use ConstraintSet at android.support.constraint.ConstraintSet.clone(ConstraintSet.java:687) at com.zoho.notebook.views.SettingsViewNavBar.showNoteSettingsView(SettingsViewNavBar.java:594) at com.zoho.notebook.views.SettingsViewNavBar.onClick(SettingsViewNavBar.java:303)

标签: androidandroid-constraintlayout

解决方案


我的代码中有同样的错误。我有 xml 中所有视图的 ID,但我手动将视图添加到约束布局(工具提示视图)

constraintParent.addView(childView)

如果重新绘制约束布局(应用程序转到 bg 并恢复),动态添加的视图仍在父级上,但此异常已被触发。

我通过为这样的动态视图生成视图ID来修复它

CustomViewChildView childView = new CustomViewChildView()
childView.setId(View.generateViewId()); 

然后将其添加到约束布局。


推荐阅读