Android 使用ConstraintLayout LayoutParams和ConstraintSet之间的区别?

Android 使用ConstraintLayout LayoutParams和ConstraintSet之间的区别?,android,android-constraintlayout,constraintset,Android,Android Constraintlayout,Constraintset,有两种方法可以通过编程方式在ConstraintLayout上设置约束: (此处示例:将ProgressBar垂直和水平居中放置在按钮上) 1。使用ConstraintLayout.LayoutParams ConstraintLayout.LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); int buttonId =

有两种方法可以通过编程方式在
ConstraintLayout
上设置约束:

(此处示例:将
ProgressBar
垂直和水平居中放置在
按钮上

1。使用ConstraintLayout.LayoutParams

ConstraintLayout.LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); int buttonId = button.getId(); params.leftToLeft = buttonId; params.rightToRight = buttonId; params.topToTop = buttonId; params.bottomToBottom = buttonId; progressBar.setLayoutParams(params); ConstraintLayout.LayoutParams params=新的LayoutParams(LayoutParams.WRAP_内容, LayoutParams.WRAP_内容); int buttonnid=button.getId(); params.leftToLeft=buttonId; params.rightToRight=按钮ID; params.topToTop=buttonId; params.bottomToBottom=buttonId; progressBar.setLayoutParams(参数); 2。使用约束集

ConstraintSet constraintSet = new ConstraintSet(); constraintSet.centerHorizontally(progressBarId, buttonId); constraintSet.centerVertically(progressBarId, buttonId); constraintSet.constrainWidth(progressBarId, ConstraintSet.WRAP_CONTENT); constraintSet.constrainHeight(progressBarId, ConstraintSet.WRAP_CONTENT); constraintSet.applyTo(constraintLayout); ConstraintSet ConstraintSet=新ConstraintSet(); 水平约束设置中心(progressBarId、buttonId); 约束设置中心垂直(progressBarId、buttonId); constraintSet.ConstraintWidth(progressBarId、constraintSet.WRAP_内容); constraintSet.ConstraintHeight(progressBarId、constraintSet.WRAP_内容); constraintSet.applyTo(constraintLayout);
那么,使用
ConstraintLayout.LayoutParams
和使用
ConstraintSet
有什么区别呢?这两个阶级为什么存在?其中一个还不够吗?什么时候应该使用
ConstraintLayout.LayoutParams
以及什么时候应该使用
ConstraintSet

我认为约束存储在布局参数中,ConstraintSet或多或少是一个用于操作这些值的便利类。。在我看来,使用ConstraintSet比弄清楚如何操作布局参数要好。