記録

主にAndroidアプリ開発に関する知見やその周辺に関わることについて記事をかいています

ConstraintLayoutのFlowにViewを動的に追加する

追加するViewに View.generateViewId() 等でIDの設定と、ConstraintLayout.LayoutParams を設定する。

val subBinding = ViewSubBinding.inflate(layoutInflater)
subBinding.root.id = View.generateViewId()
subBinding.root.layoutParams = ConstraintLayout.LayoutParams(
        ConstraintLayout.LayoutParams.WRAP_CONTENT,
        ConstraintLayout.LayoutParams.WRAP_CONTENT
)

最後に追加先のViewとFlowに先ほどのViewを追加して終わりです。

val mainBinding = ViewMainBinding.inflate(layoutInflater)
mainBinding.addView(subBinding.root)
mainBinding.flow.addView(subBinding.root)