背景:
在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"
厦门大学计算机专业 | 前华为工程师 Java | 安卓 | 前端 | 小程序 | 鸿蒙 公众号:蓝不蓝编程