在ViewPager中滑动视图时出现问题

时间:2014-12-01 15:38:06

标签: android android-viewpager adapter android-view visualizer

My View寻呼机由照片,音频和视频组成。音频视图包含播放音频的播放按钮。当我点击播放按钮时 它会消失并且音频开始播放。当我停止音频或完成音轨时,再次显示播放按钮。 如果我在播放音频时滑动视图并移动到下一个视图然后音频停止。但问题是如果我在播放音频时通过滑动移动到下一个视图然后返回到音频视图然后我不能看View Viewr上的播放按钮。但是,如果我滑动到下一个视图旁边或进一步查看下一个视图然后返回到 音频视图然后我可以看到音频视图上的播放按钮。后面也会发生。如果我在播放音频的同时通过从音频视图滑动移动到上一个视图,然后返回到 音频视图我无法在View Pager上看到播放按钮。但是,如果我滑动到上一个视图的前一个视图或进一步的先前视图,然后返回到 音频视图,然后我可以在View Pager ..上看到播放按钮。

2 个答案:

答案 0 :(得分:1)

原因是当片段0处于活动状态时,Android也会启动相邻的片段,在这种情况下只有1.当您滑动到片段1时,由于片段0已经启动,因此android仅启动片段2.这是当你从片段1移回片段0时,你没有看到播放按钮。

现在当你移动到片段2然后再回到片段1时,片段0将被刷新,因此你可以再次看到该按钮。

老实说,我一直在努力解决同样的问题。这已在StackOverflow中多次讨论过。我发现以下帖子最有用。

Update data in ListFragment as part of ViewPager

答案 1 :(得分:0)

您所描述的只是ViewPager的工作方式。

在任何时候,它所拥有的唯一页面是当前的页面,一个在左边,一个在右边。滚动时,可以根据您的位置销毁页面。

在任何情况下,如果您希望处理页面之间的切换,您只需使用setOnPageChangeListener向ViewPager添加一个监听器。

这样,您就可以识别之前选择的页面,以及现在选择的页面。

如果您愿意,您可以发布项目,我会看到我可以做些什么来解决它。

我还建议使用片段而不是视图来更轻松地处理每个页面的生命周期。此外,如果您希望保存页面状态,可以使用FragmentStatePagerAdapter