删除视图会在linearlayout中留下空白空间

时间:2015-11-13 18:23:31

标签: java android android-layout android-studio

我在活动中遇到问题。我创建了一个在线程上运行的runnable。线程检查是否已刷过textview并将textview移出屏幕。一旦该textview在屏幕外,它就会从linearlayout中删除它。布局不会更新其中的文本视图,并留下前一个文本视图所在的空间。

现在如何:

__________           __________            __________
|[item 1]|  ----->   |[item 1]|   ----->   |[item 1]|
|[item 2]|  User     |[swiped]|   item 2   |        |
|[item 3]|  swipes   |[item 3]|   space    |[item 3]|
|[item 4]|  item 2   |[item 4]|   remains  |[item 4]|
|[item 5]|           |[item 5]|            |[item 5]|
----------           ----------            ----------

我希望它如何运行:

__________           __________            __________
|[item 1]|  ----->   |[item 1]|   ----->   |[item 1]|
|[item 2]|  user     |[swiped]|   removed  |[item 3]|
|[item 3]|  swiped   |[item 3]|   view &   |[item 4]|
|[item 4]|           |[item 4]|   update   |[item 5]|
|[item 5]|           |[item 5]|   space    |        |
----------           ----------            ----------

我希望这可以解释发生了什么以及我拥有什么。如果没有生病,请添加更多。

编辑:如果我锁定并解锁我的屏幕,它会更新UI,并修复视图。看来我正在寻找刷新或者无效()?

1 个答案:

答案 0 :(得分:2)

你可能想要:

LinearLayout.requestLayout()

  

public void requestLayout ()

     

当某些内容发生变化而导致此视图的布局无效时,请调用此方法。这将安排视图树的布局传递。当视图层次结构当前处于布局传递(isInLayout()中时,不应调用此方法。如果发生布局,则可以在当前布局传递结束时(然后布局将再次运行)或之后执行请求绘制当前帧并进行下一个布局。

     

重写此方法的子类应调用超类方法来正确处理可能的布局错误请求。