ConstraintLayout中依赖的控件为GONE时,如何保持距离
背景:
在ConstraintLayout中,如果设置了一个控件(A)依赖于另一个控件(B),当控件B设置为GONE时,A控件的位置就会发生变化。为了保持适当的效果,需要设置此种情况下A控件相对于父控件的距离。
解决方案:
通过如下属性设置依赖控件为GONE时相对父控件的距离:
1 layout_goneMarginStart
2 layout_goneMarginEnd
3 layout_goneMarginLeft
4 layout_goneMarginTop
5 layout_goneMarginRight
6 layout_goneMarginBottom
Demo:
1)初始状态:
A控件距离顶部80dp,左侧72dp;
B控件左侧和A对齐,顶部距离A20dp;
2)不设置B控件: layout_goneXX属性时,如果A控件设置为GONE
3)设置B控件的layout_goneMarginLeft和 layout_goneMarginTop属性后,效果如下
app:layout_goneMarginLeft="72dp"
app:layout_goneMarginTop="80dp"