2014-09-04 67 views
0

当我滚动listview(此项目不再可见)时,我有一个progessbar出现在listview中的一个项目中。它内部的进度条消失,有时会出现在listview的另一个项目中。问题是什么 ?滚动时ListView项目中的进度条消失

编辑: 我使用ViewHolder patterntextviews没有任何问题。问题在于显示/隐藏进度栏,因为它默认是隐藏的,并且根据适配器getView()中的特定条件出现。我以编程方式显示progoressbar使用setVisibility()

+0

您是否在使用[ViewHolder模式](http://www.codeofaninja.com/2013/09/android-viewholder-pattern-example.html)来宣扬视图?如果你是,也许这可能是问题? – 2014-09-04 16:11:30

+0

你可以通过程序控制何时使你的进度条可见,什么时候不可见,分别使用'setVisibility(View.VISIBLE)'和'setVisibility(View.GONE)'。 – 2014-09-04 16:11:46

+0

也许你没有把它的知名度设置在你应该去的地方去。 – 2014-09-04 16:21:36

回答

0

查看一些代码以调试它会很有帮助。这可能是当你滚动时焦点从进度条移动到列表视图,然后可能当你停止滚动列表视图中的不同元素具有焦点并且该栏被注册到该elemenet。正如我所说的那样,一些代码或更多关于发生的事情的信息会有所帮助。

+0

如果您希望获得关于OP问题的更多说明,请在评论中询问您的问题,而不是回答。 – 2014-09-04 16:08:48

0

如果元素从一行中消失,然后出现在另一行中,最好打赌你没有正确处理ListView的回收。

对于在适配器中对createView的每次调用,如果使用convertView参数,则必须处理ProgressBar可见和不可见的情况。当您在一行中显示ProgressBar时,会出现这种情况,然后滚动ListView。该行将在滚动屏幕时被回收,并作为convertView参数传递回createView。如果您没有将其可见性设置为“已去除”,它将继续显示,但现在为不正确的行。