0
  • 最佳答案
    最后解决是通过用Handler配合线程实现的倒计时, 然后在每次Rv翻页的时候通过模拟点击 来把线程remove掉 (因为如果在onPageSelected里去remove的话  那handler会失效   并且也不能在这 去改变布尔值) 所以要通过模拟点击去点击事件里面关闭倒计时和改变布尔值
    
    1346006481350291456  评论     打赏       Aka安卓菜鸟





    • 1346006481350291456  评论     打赏       Aka安卓菜鸟
      • 你是把倒计时的代码写到适配器里面了嘛?

        1204736502274318336  评论     打赏       A lonely cat
        • Aka安卓菜鸟  回复 @A lonely cat
          是的 倒计时代码写在在适配器里 推测是Rv的缓存和holder复用问题 但是没有找到好的解决办法
          Aka安卓菜鸟 2021-01-04 17:21   回复 1346006481350291456
        • A lonely cat  回复 @Aka安卓菜鸟
          定义一个 flag 撒,判断是否已经调用过了 如果调用过了就不用重新倒计时了吖
          A lonely cat 2021-01-04 17:29   回复 1204736502274318336
        • Aka安卓菜鸟  回复 @A lonely cat
          对 有尝试过这个解决方法 但是因为Rv缓存的原因 假设我要在第二页调用 但是当我滑动到第一页的时候 我第二页的已经进入预加载了 我的flag值在第一页的时候就变了
          Aka安卓菜鸟 2021-01-04 17:40   回复 1346006481350291456
        • A lonely cat  回复 @Aka安卓菜鸟
          好像是有这个问题 要不你用ViewPager2+Fragment吧 这样可以实现懒加载 而且生命周期可控
          A lonely cat 2021-01-04 22:51   回复 1204736502274318336
        • A lonely cat  回复 @Aka安卓菜鸟
          还有就是 ViewPager2是基于RecyclerView实现的 所以你不用担心不够高效
          A lonely cat 2021-01-04 22:54   回复 1204736502274318336
        • Aka安卓菜鸟  回复 @A lonely cat
          好的,我待会试试
          Aka安卓菜鸟 2021-01-05 09:13   回复 1346006481350291456
      相关问题
      资质平平 · Android
      2025-02-20 09:14 92 100
      尖沙咀-段坤 · 项目
      2025-01-06 23:39 18 2
      雅澤yaduo · 领券联盟
      2025-01-03 20:39 37 50
      呆瓜小董 · webview
      2024-11-30 18:02 68 20
      阿肥 · 鸿蒙next
      2024-10-25 18:07 35 100
      尖沙咀-段坤 · 安卓
      2024-09-11 11:03 31 2
      YanLQ · AOSP
      2024-08-10 11:57 35 100
      断点 · vue
      2024-08-08 10:05 79 30
      幻影~ · 安卓 / 面试
      2024-06-15 18:51 48 2