【发布时间】:2021-07-10 16:35:43
【问题描述】:
已经有一段时间了。基本上我希望自定义 ConstraintLayout 中的视图以编程方式居中。
我的布局是这样的:
class CenterLayout @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs,defStyleAttr) {
private val constraintSet = ConstraintSet()
override fun onFinishInflate() {
super.onFinishInflate()
for (i in 0 until childCount) {
val child = getChildAt(i)
setConstraints(child)
}
constraintSet.applyTo(this)
}
private fun setConstraints(view:View){
constraintSet.clone(this)
constraintSet.centerHorizontally(view.id,ConstraintSet.PARENT_ID)
constraintSet.centerVertically(view.id,ConstraintSet.PARENT_ID)
}
}
基本上我会遍历孩子并应用一些约束,但它似乎不起作用。视图仍固定在左上角。
有什么想法吗?
【问题讨论】:
标签: android kotlin android-layout view