代码之家  ›  专栏  ›  技术社区  ›  Cheng

在坐标布局中隐藏从属视图时更新目标视图位置

  •  1
  • Cheng  · 技术社区  · 7 年前

    我有一个视图a,它与另一个视图B有依赖关系。当我试图隐藏这个视图B时,视图a的位置仍然是相同的。理想情况是,如果视图B的可见性消失,视图A应该更新其位置。

    在视图行为中,有一个名为onDependentViewChanged()的方法,但根据该方法的注释,只有当视图B的位置更改时,视图a的位置才会更改。但我不想改变视图B的位置,只是把它隐藏起来。

    ====

    我还尝试更新onDependentViewRemoved中的视图,但不确定为什么没有调用此方法

    1 回复  |  直到 7 年前
        1
  •  1
  •   Cheng    7 年前

    找到了解决方案,在检查了CoordinatorLayout的源代码后,发现一个接口方法onLayoutChild()就是我想要的。只需在自定义行为文件中实现该方法,并在该方法内根据从属视图的可见性更新目标视图的位置。