在ConstraintLayout中放置自定义组件时,Android Studio不显示锚点

时间:2018-07-26 17:01:34

标签: android android-layout android-studio custom-controls kotlin-android-extensions

我已经在Android中开发了一个超级简单的自定义视图,用作通用占位符,它仅显示了左上顶点与右下顶点之间的对角线。

问题是当我尝试在ConstraintLayout中对其进行布局时,编辑器未显示我期望的锚点。一张图像值一千个字:

enter image description here

如果您有使用Android Studio的经验,那么您会知道,如果我使用的是标准视图(如Button),而不是我的自定义视图,则绿色箭头通常应钩到代表垂直约束的灰色“ BUTTON”。

有人知道为什么Android Studio的行为不符合预期吗? 这是Android Studio的错误,还是我的自定义视图未找到其他类似回调方法的东西?

值得一提的是,如果我手动编辑布局XML并编写适当的约束,然后重新打开视图,则视图将正确显示,所有箭头都表示约束!甚至我一开始都没画的那个。

1 个答案:

答案 0 :(得分:0)

好的,答案很简单。为了正常工作,必须为所有组件分配android:id。如果ConstraintLayout中涉及的某些组件没有此组件,则Android Studio无法设置此类约束。这是因为约束具有这种形式:

app:layout_constraintTop_toBottomOf="<ID OF THE COMPONENT ATTACHED TO>"

所以...就我而言,足以确保所有组件(无论是自定义组件还是默认组件)都具有ID。