滚动视图时出现闪烁问题

时间:2011-04-21 09:15:13

标签: android scroll viewgroup

我正在尝试将基于Marc Reichelt的工作的RealViewSwitcher转换为使用ListAdapter备份的工作。包含多个视图的水平可滚动ViewGroup,其中一个视图一次可见。

我目前的解决方案一次最多为ViewGroup添加3个视图。一个(中间)可见,两个缓冲视图,每边一个。当用户滚动时,向右移动,最左侧的视图将被删除,并且新的视图将添加到右侧。为了使ViewGroup可以向左和向右滚动,我需要始终关注中间的View。因此,当切换视图时,我正确排列视图并将焦点设置在中间的视图上。这种方法的问题在于它在安排视图时会出现闪烁效应。让我用我画的图片说明问题: problem scenario

A,B和C是我的ViewGroup中的三个不同视图(备份ViewGroup的ListAdapter包含更多元素,但一次只加载三个)。较大的矩形表示焦点目前的位置。我向左滚动,在(3)我捕捉到最左边的视图目的地。然后我重新安排了视图。即向左添加一个新视图X并向右移除视图C,将A放在中间。最后,我以中间的视图(A)为中心,这是我从头开始滚动的视图。

因此,当我最后重新排列视图并在中间位于A中心时,之前位于中间的视图内容(在这种情况下为B)闪烁几毫秒,导致闪烁效果,无道理。关于我如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

问题解决了。该问题似乎与更改ViewGroup中的孩子有关,然后调用scrollTo方法。如果我改为使用Scroller移动到右视图/子项,则闪烁的问题会消失。