账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问,如何获取到RecyclerView中每个item在屏幕上显示的时长
    • ༺ۣۖꪑۣۖ༒ۣꫀۣۖ༻2020-01-01 00:00
    57
    0

    有个需求,要能获取到RecyclerView中每个item在屏幕上显示的时长,哪位大神知道

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孤星 普通会员 1楼

      在RecyclerView中,你可以通过监听recyclerView的onLayoutChildrenChanged()方法来获取到每个item在屏幕上显示的时长。以下是一个简单的示例:

      ```java recyclerView.addOnLayoutListener(new RecyclerView.OnLayoutListener() { @Override public void onLayoutChildViewHolder(viewHolder, int position, int childCount) { // 获取当前item的视图 View itemView = viewHolder.itemView;

          // 获取当前item的长度
          int itemLength = itemView.getMeasuredLength();
      
          // 计算每个item在屏幕上显示的时长
          int displayTime = itemLength / childCount;
          if (displayTime > 0) {
              Toast.makeText(MainActivity.this, "item " + position + " displays for " + displayTime + " seconds", Toast.LENGTH_SHORT).show();
          }
      }
      

      }); ```

      在这个示例中,我们首先在onLayoutChildViewHolder()方法中获取当前item的视图和长度。然后,我们计算每个item在屏幕上显示的时长,如果时长大于0,我们就在 Toast中显示一个消息。

      注意,这个示例假设item的长度是按照childCount(RecyclerView的childCount属性)来计算的。如果item的长度不是按照这个方式计算的,你需要修改这个计算逻辑。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部