ViewPager加载数据第一次不显示问题

啊Abu 2016-07-03 09:58:41
需求是这样 ViewPager加载多个SurfaceView 通过滑动显示不同的SurfaceView , SurfaceView 是用来播放视频的,在ViewPager加载数据时Surface播放的视频已经初始化好,但是 现在问题是第一次显示时Viewpager没有图像(SurfaceView没有显示),这时滑动到第二页,再滑动到第一页时,第一页的视频才正常播放。《这是ViewPager取消预加载时》
在ViewPager没有取消预加载时,如果有三个页面,滑动Viewpager从1到3,这时候三个页面都不会显示,再从3滑动到1,这时1页面会显示,滑动到2,2页面没有视频,滑动到3,3页面有视频,弟二个页面就想没有加载数据一样。

这个问题已经困扰好几天 希望有大神给以指导 多谢 多谢
...全文
912 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
良夲 2020-07-28
  • 打赏
  • 举报
回复
引用 楼主 啊Abu 的回复:
需求是这样 ViewPager加载多个SurfaceView 通过滑动显示不同的SurfaceView , SurfaceView 是用来播放视频的,在ViewPager加载数据时Surface播放的视频已经初始化好,但是 现在问题是第一次显示时Viewpager没有图像(SurfaceView没有显示),这时滑动到第二页,再滑动到第一页时,第一页的视频才正常播放。《这是ViewPager取消预加载时》 在ViewPager没有取消预加载时,如果有三个页面,滑动Viewpager从1到3,这时候三个页面都不会显示,再从3滑动到1,这时1页面会显示,滑动到2,2页面没有视频,滑动到3,3页面有视频,弟二个页面就想没有加载数据一样。 这个问题已经困扰好几天 希望有大神给以指导 多谢 多谢
楼主这个问题很可能是因为初始化adapter的时候传入的数据为null,等请求数据成功之后才初始化数据,然后刷新的adapter,这样切换不同页面再切换回来,fragment并没有重新创建,使用的还是第一次请求数据成功之后初始化的对象。这样会出现1,3显示,2不显示的情况 解决办法是再初始化adapter之前,把数据对象初始化一下,第一次不要传null给adapter。
yarffoo 2019-10-12
  • 打赏
  • 举报
回复
在ViewPager中不能使用SurfaceView,因为SurfaceView会新建一个独立的Windows。可以用TextureView替代。
冰天糖葫芦 2019-10-10
  • 打赏
  • 举报
回复
网上有很多相关代码的,你可以找找仿抖音的代码,希望对你有用
  • 打赏
  • 举报
回复
请问lz解决了没有,我正好也出现了这个问题,麻烦请教一下
王能 2019-10-08
  • 打赏
  • 举报
回复
引用 2 楼 qq_34179077 的回复:
请问lz解决了没有,我正好也出现了这个问题,麻烦请教一下
这种问题一般是你初始化时没有调用视频的start或者调用的start太早,可以试试把start相关的代码延时个1秒看看是否能播放,如果能播放再用view.post来延时播放

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧