我已经在Android中开发了一个超级简单的自定义视图,用作通用占位符,它仅显示了左上顶点与右下顶点之间的对角线。
问题是当我尝试在ConstraintLayout中对其进行布局时,编辑器未显示我期望的锚点。一张图像值一千个字:
如果您有使用Android Studio的经验,那么您会知道,如果我使用的是标准视图(如Button),而不是我的自定义视图,则绿色箭头通常应钩到代表垂直约束的灰色“ BUTTON”。
有人知道为什么Android Studio的行为不符合预期吗? 这是Android Studio的错误,还是我的自定义视图未找到其他类似回调方法的东西?
值得一提的是,如果我手动编辑布局XML并编写适当的约束,然后重新打开视图,则视图将正确显示,所有箭头都表示约束!甚至我一开始都没画的那个。
答案 0 :(得分:0)
好的,答案很简单。为了正常工作,必须为所有组件分配android:id
。如果ConstraintLayout
中涉及的某些组件没有此组件,则Android Studio无法设置此类约束。这是因为约束具有这种形式:
app:layout_constraintTop_toBottomOf="<ID OF THE COMPONENT ATTACHED TO>"
所以...就我而言,足以确保所有组件(无论是自定义组件还是默认组件)都具有ID。