作者lazior (懒人)
看板AndroidDev
标题[问题] viewpager 在 recyclerview 自动播放
时间Fri Sep 22 00:13:29 2017
想要能像虾皮一样,
能将viewpager的自动播放放在recyclerview的第一项
下timer是简单,在onBindViewHolder
但当我的viewpager不可见时,
要怎麽将timer移除?
想了很久…
1.判断position,
但如果我无法确定他在哪个position会不可见呢?
因为我的item高度不一定!
2.利用findFirstCompleteVisibleItemPosition
判断第一个是谁?
timer是移除了,
但当viewpager可见时要怎麽设置timer?
如果他还没被回收?
题外话,
一开始以为虾皮有解决这个问题了…
後来详细测了一下…
虾皮根本直接忽略压!!!
我退出APP,他竟然还在背景跑timer…
没有去处理这一块…晕…
而且一个viewpager就一个timer
更新:
煆皮好像是直接镶一个webview?
所以以现在的recyclerview有办法达到同样效果吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 117.19.35.216
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1506010411.A.046.html
※ 编辑: lazior (175.182.106.142), 09/22/2017 00:18:22
※ 编辑: lazior (175.182.106.142), 09/22/2017 00:27:13
1F:→ ssccg: 只是要当时的第一项的话为什麽要绑特定item,Timer执行时直 09/22 00:27
2F:→ ssccg: findFirstCompleteVisibleItemPosition找当时的第一项就好? 09/22 00:28
有想过...
但不知道怎麽去取得head view
而且这样要在背景一直跑一个timer
去检查是否为head view
3F:推 aids61517: RecyclerView的adapter中有onViewAttachedToWindow 09/22 10:44
4F:→ aids61517: 和onViewDetachedFromWindow,你可以用参数viewHolder 09/22 10:44
5F:→ aids61517: 及instanceof判断是不是你要自动拨放的holder 09/22 10:45
6F:→ aids61517: 来判断要不要新增/移除timer 09/22 10:46
後来是采用您的方法
在onBindViewHolder如果新增的这个是head view
就挂上OnAttachStateChangeListener()
当view attach时就取消所有之前timer,并产生新的timer
(不知回收怎麽运作,当我view attach,先前的timer也会被启动...)
如果view detach就取消timer
7F:推 lnmlee: 尝试用 View.postDelay看看 09/23 08:49
※ 编辑: lazior (101.11.2.78), 09/24/2017 15:37:41
※ 编辑: lazior (101.11.2.78), 09/24/2017 15:38:25