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;

ConstraintLayout中依赖的控件为GONE时,如何保持距离

  2)不设置B控件: layout_goneXX属性时,如果A控件设置为GONE

ConstraintLayout中依赖的控件为GONE时,如何保持距离

  3)设置B控件的layout_goneMarginLeft和 layout_goneMarginTop属性后,效果如下

       app:layout_goneMarginLeft="72dp"
       app:layout_goneMarginTop="80dp" 

ConstraintLayout中依赖的控件为GONE时,如何保持距离