【问题标题】:How to remove a view from a LinearLayout without affecting the positions of the other children?如何从 LinearLayout 中删除视图而不影响其他孩子的位置?
【发布时间】:2012-01-19 19:53:14
【问题描述】:

我正在尝试向 ScrollView 内的 LinearLayout 添加/删除视图。我想在 LinearLayout 为更大的列表滚动时删除/添加视图可能会消耗内存和/或变慢。有什么方法可以从 LinearLayout 中移除 View 而不会影响其兄弟姐妹的位置?

当我调用linearLayout.removeChildAt(0) 时,所有视图都回弹一个,因此很难保持恒定的滚动效果。

【问题讨论】:

    标签: java android view scrollview android-linearlayout


    【解决方案1】:

    我不确定这是否适用于您(也许您已经知道这一点),但通常当您必须显示一个视图列表时,而不是使用滚动视图和自己添加/删除子视图时,您可以在android中使用ListView。

    【讨论】:

    • 事实上,保持视图列表的效率正是 ListView 的目的。
    • 我正在使用 ListView 作为我目前使用 ScrollView 实现的早期原型。只是不记得为什么我切换了
    【解决方案2】:

    删除视图时,将其替换为与已删除视图大小相同的空白占位符视图。

    【讨论】:

    • 那么我们将使用相同数量的视图,否则我不会删除它们。也许修改 LinearLayout 的填充!
    【解决方案3】:

    通过在父内边距的位置 0 处添加/减去已移除视图的大小,我在移除视图时有效地停止了“切割”效果。

    【讨论】:

      猜你喜欢
      • 2018-03-29
      • 1970-01-01
      • 2022-01-25
      • 2020-11-13
      • 1970-01-01
      • 2022-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多