Java 是否有方法在ConstraintLayout中复制组件的约束参数?
在我的Java 是否有方法在ConstraintLayout中复制组件的约束参数?,java,android,Java,Android,在我的ConstraintLayout中有一个视图,它位于XML中。然后我想在单击按钮时将此视图更改为另一个视图。我有脚本来做它,它工作正常,但是新的视图出现在屏幕顶部,我需要它处于与前一个相同的位置。我读过谷歌安卓系统的文档,但我发现没有任何东西对我有帮助。唯一的方法是使用ConstraintSet.connect()?您可以通过重新使用原始视图的ConstraintLayout.LayoutParams对象来执行此操作: button.setOnClickListener(v -> {
ConstraintLayout
中有一个视图
,它位于XML中。然后我想在单击按钮时将此视图更改为另一个视图。我有脚本来做它,它工作正常,但是新的视图出现在屏幕顶部,我需要它处于与前一个相同的位置。我读过谷歌安卓系统的文档,但我发现没有任何东西对我有帮助。唯一的方法是使用ConstraintSet.connect()
?您可以通过重新使用原始视图的ConstraintLayout.LayoutParams
对象来执行此操作:
button.setOnClickListener(v -> {
ConstraintLayout.LayoutParams params =
(ConstraintLayout.LayoutParams) viewToRemove.getLayoutParams();
parent.removeView(viewToRemove);
parent.addView(viewToAdd, params);
});
请注意,这将提供与旧视图相同的宽度和高度,因此,如果需要将其设置为不同,则可能需要明确设置:
ConstraintLayout.LayoutParams params =
(ConstraintLayout.LayoutParams) toRemove.getLayoutParams();
params.width = ViewGroup.LayoutParams.WRAP_CONTENT;
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
无论如何,我需要它的大小相同。是的,它就像我想要的那样工作。