当前位置: 首页 > 知识库问答 >
问题:

如何设置循环查看滚动的速度?

陆正德
2023-03-14

我正在使用RecyclerViewGridLayoutManagerRecyclerView滚动的速度太快了。我要它慢下来。我确实尝试了许多其他的代码和方法,但没有一个对我有效。

这是我发现的

  1. 如何使RecyclerView平滑滚动?

这篇文章建议在OnCreateViewWholderOnBindViewWholder中不应该有I/O操作,并且在执行这些方法时花费太多时间会造成延迟。但是,我没有I/O操作,也没有太多的代码。

...
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_view, parent, false);
        return new MyViewHolder(view,listner);
    }

  @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        GlideApp.with(context)
                .load(arrayList.get(position).getUri())
                .apply(RequestOptoins.overrideOf(180,180))
                .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                .into(holder.img);
        Log.d("FetchImages(): "," Glide Called");
    }
...

注意我正在尝试显示来自外部存储的图像。所以,在第一次加载时,glide将创建缩略图来缓存,然后在第二次加载时将不会有更大尺寸的图像。但是,我的手机里还有5000多张照片。而且一次recyclerview只能显示40个图像。所以,如果我不小心快速滚动,其余的图像将加载到Forground。所以,我想禁用快速滚动,这样不管有多少张照片,recyclerview将只显示加载的照片。

共有1个答案

闽朝
2023-03-14

您可以创建CustomRecyclerView并通过重写fling()方法来降低其速度。你可以在这里阅读官方文件。

@Override
public boolean fling(int velocityX, int velocityY) {
     velocityY *= FLING_SPEED_FACTOR; // keep it less than 1.0 to slowdown
     return super.fling(velocityX, velocityY);
} 

这只是降低了投掷速度,即使投掷的数量相同,你的RecyclerView滚动也会更小。

 类似资料:
  • 我的整个代码有点长,但如果有帮助,我可以发布它。 提前道谢。我想尝试使用动作手势,然而,我真的不明白为什么我的方法不能工作这么长时间,我可以调用它在正确的地点。我最初的想法是,每次位置发生变化时,如果条件正确,就在“Object instantiateItem(ViewGroup容器,最终int位置)”中调用它。但我不确定这是否是最好的。

  • 我对Recyclerview项单击有问题。当在中向下滚动时,我将数据提取到方法,并通过recyclerview自定义适配器中的方法进行添加。我通过点击碎片上的界面获得物品位置。首先获取数据工作正常,但在获取loadmore时,无法使用方法将项目位置检索到新数据。

  • 实现循环ScrollView。有以下特色: 1、循环的scrollview 2、类似于tableview的编程方式 3、可定制化的内容 4、灵活运用可用于移步加载图片 5、结构化,可扩展性高 [Code4App.com]

  • 问题内容: 在ViewController.Swift中,我设法使一个盒子从一个点动画到另一个点。我认为将其循环很容易,因此框将动画到一个点,然后再动画回到其原始位置,然后再次循环。我已经设法将对象移到某个位置,并在“完成”后再次将其移回,但这并没有使我循环。如何做到这一点? 我以为这也许行得通,但老实说我不知道​​: 如何根据设备宽度居中(我假设涉及数学运算?)? 我的代码: 问题答案: 无需执

  • 可以通过设置任务详情页中的周期,实现建立周期性任务。比如“周例会”

  • 我有一个登录系统,可以循环浏览所有客户,查看特定用户名和密码是否匹配,但它似乎不起作用。所有的顾客都在一份名单上。我最初引用了这篇文章,但它仍然不起作用。任何帮助都将不胜感激。非常感谢。 其他信息 登录系统(GUI) 查找客户是否已注册 客户类别