删除Android问题中LinearLayout的视图

删除Android问题中LinearLayout的视图,android,Android,我创建了一个LinearLayout,其中动态添加了ImageView。我可以有一个50个ImageView的列表,但同时只有3个会显示在其中 我需要引用其中的3个项目,以便在名为ImageView item1、item2、item3的活动顶部设置私有变量 按下按钮时,列表中的下一个ImageView将添加到布局中,第一个项目将被删除。然后我重置了item1、item2和item3的引用 我的问题是,虽然效果很好,但似乎存在绘画问题。item3(最后一个ImageView)将显示在前一个Imag

我创建了一个LinearLayout,其中动态添加了ImageView。我可以有一个50个ImageView的列表,但同时只有3个会显示在其中

我需要引用其中的3个项目,以便在名为ImageView item1、item2、item3的活动顶部设置私有变量

按下按钮时,列表中的下一个ImageView将添加到布局中,第一个项目将被删除。然后我重置了item1、item2和item3的引用

我的问题是,虽然效果很好,但似乎存在绘画问题。item3(最后一个ImageView)将显示在前一个ImageView上添加的新项目。这似乎是一个绘画问题,因为如果我把手机切换到横向模式,然后再回到纵向,问题就解决了


编辑:我已尝试将.invalidate()添加到布局和ImageView本身,但没有成功。

我们将尝试以这种方式使刷新成为引用

    layout.removeAllViews();
    layout.refreshDrawableState();

然后将新的3项添加到LinearLayout。希望这有帮助。:)

为您的视图粘贴相关的代码和screenshotsTry
invalidate()
方法,并确保您删除的视图通过设置其对
视图的可见性不可见。如果该视图不为空,则消失
。而不是删除和替换视图。为什么不直接回收呢?这意味着与其移动实际视图,不如交换它们的内容。就像你在ArrayAdapter中所做的那样你是按这个顺序做的,对吗?添加新布局,删除旧布局,使布局无效。试试这个顺序。@slayton这是正确的解决方案,非常感谢。这是正确的做法。无需调用
refreshDrawableState()
尽管如此,因为
removeAllViews()
在内部执行
requestLayout()
无效(true)