Android 在 ConstraintLayout 中布置自定义组件时,Studio 不显示锚点
Android Studio does not show anchor points when laying out a custom component in a ConstraintLayout
我在 Android 中开发了一个超级简单的自定义视图,用作通用占位符,它只显示左上顶点到右下顶点之间的对角线。
问题是当我尝试在 ConstraintLayout 中对其进行布局时,编辑器没有显示我期望的锚点。一图抵千字:
如果您有使用 Android Studio 的经验,您就会知道,如果我使用的是标准视图(例如按钮)而不是我的自定义视图,绿色箭头通常应该挂在灰色 "BUTTON",表示垂直约束。
知道为什么 Android Studio 没有按预期运行吗?
这是一个 Android Studio 错误,或者我的自定义视图可能遗漏了一些回调方法之类的东西?
值得一提的是,如果我手动编辑布局 XML 编写适当的约束,然后重新打开视图,它会正确显示,所有代表约束的箭头都已就位!甚至是我一开始没能画出来的那个。
好的,答案很简单。为了正常工作,必须为所有组件分配 android:id
。如果ConstraintLayout
中涉及的某些组件没有它,AndroidStudio是不可能设置这样的约束的。这是因为约束具有这种形式:
app:layout_constraintTop_toBottomOf="<ID OF THE COMPONENT ATTACHED TO>"
所以...在我的例子中,确保所有组件(无论是自定义组件还是默认组件)都有一个 ID 就足够了。
我在 Android 中开发了一个超级简单的自定义视图,用作通用占位符,它只显示左上顶点到右下顶点之间的对角线。
问题是当我尝试在 ConstraintLayout 中对其进行布局时,编辑器没有显示我期望的锚点。一图抵千字:
如果您有使用 Android Studio 的经验,您就会知道,如果我使用的是标准视图(例如按钮)而不是我的自定义视图,绿色箭头通常应该挂在灰色 "BUTTON",表示垂直约束。
知道为什么 Android Studio 没有按预期运行吗? 这是一个 Android Studio 错误,或者我的自定义视图可能遗漏了一些回调方法之类的东西?
值得一提的是,如果我手动编辑布局 XML 编写适当的约束,然后重新打开视图,它会正确显示,所有代表约束的箭头都已就位!甚至是我一开始没能画出来的那个。
好的,答案很简单。为了正常工作,必须为所有组件分配 android:id
。如果ConstraintLayout
中涉及的某些组件没有它,AndroidStudio是不可能设置这样的约束的。这是因为约束具有这种形式:
app:layout_constraintTop_toBottomOf="<ID OF THE COMPONENT ATTACHED TO>"
所以...在我的例子中,确保所有组件(无论是自定义组件还是默认组件)都有一个 ID 就足够了。