如何控制recyclerView.smoothScrollToPosition(position)的滚动速度?

2023-11-27

我有一个回收器视图,我想要平滑地向下滚动,然后以编程方式向上滚动到它,以向用户显示其中的完整内容。

我可以通过以下方式做到这一点:

    final int height=recyclerView.getChildAt(0).getHeight();
    recyclerView.smoothScrollToPosition(height);
    recyclerView.postDelayed(new Runnable() {
        public void run() {
            recyclerView.smoothScrollToPosition(0);
                        }
    },200);

但我想要的是减慢滚动速度,以便完整的内容清晰可见。


只是为了稍微改进一下答案:

public class SpeedyLinearLayoutManager extends LinearLayoutManager {

    private static final float MILLISECONDS_PER_INCH = 5f; //default is 25f (bigger = slower)

    public SpeedyLinearLayoutManager(Context context) {
        super(context);
    }

    public SpeedyLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
        super(context, orientation, reverseLayout);
    }

    public SpeedyLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    @Override
    public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {

        final LinearSmoothScroller linearSmoothScroller = new LinearSmoothScroller(recyclerView.getContext()) {

            @Override
            public PointF computeScrollVectorForPosition(int targetPosition) {
                return super.computeScrollVectorForPosition(targetPosition);
            }

            @Override
            protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
                return MILLISECONDS_PER_INCH / displayMetrics.densityDpi;
            }
        };

        linearSmoothScroller.setTargetPosition(position);
        startSmoothScroll(linearSmoothScroller);
    }
}

然后将 SpeedyLayoutManager 设置为您的 RecyclerView:

recyclerView.setLayoutManager(new SpeedyLinearLayoutManager(context, SpeedyLinearLayoutManager.VERTICAL, false);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何控制recyclerView.smoothScrollToPosition(position)的滚动速度? 的相关文章

  • 蓝牙适配器.getDefaultAdapter();返回空值

    我开始开发一个应用程序通过蓝牙与arduino设备进行通信 我正在初始化 bt 适配器 BluetoothAdapter btAdapter BluetoothAdapter getDefaultAdapter 问题是 btAdapter
  • 当用户快速滚动时,如何延迟列表适配器中视图的加载

    我的列表视图中有从互联网下载的图像 我想在 getView 中添加一些内容 以便在用户快速滑动 滚动时它不会下载图像 我怎样才能开始这样做呢 您可以按照以下步骤延迟 ListView 中视图的加载 首先 你应该让你的ListView对象和Y
  • java中将函数作为参数传递

    我正在熟悉 Android 框架和 Java 并希望创建一个通用的 NetworkHelper 类 该类将处理大部分网络代码 使我能够从中调用网页 我按照developer android com 上的这篇文章创建了我的网络类 http d
  • Dagger 2 不会注入我的对象,但可以从组件中获取

    我有我的组件 GithubListActivityScope Component modules GithubListActivityModule class GlideActivityModule class public interfa
  • 如何在从另一个活动调用一个活动时延迟一些?

    我有一个应用程序 其中我正在接收包含他的位置的短信 收到短信后 它会调用另一个活动来启动并将该位置传递给该活动以将其绘制在地图上 在调用第二个活动之前 它会显示一个类似于通知的吐司在屏幕上 但由于调用第二个活动 吐司没有出现 我的问题是我们
  • 如何使用 Espresso 访问外部网站上的元素

    使用 espresso 我们单击 登录 按钮 该按钮将启动一个外部网站 Chrome 自定义选项卡 您可以在其中登录 然后重定向回我们的 Android 应用程序 Espresso 有没有办法 1 验证正在启动的 URL 是否正确2 访问网
  • 字符串生成器最大长度

    我想知道字符串生成器 或字符串缓冲区 的最大容量是多少 我的 Android 应用程序中有一个静态变量 它应该保存日志字符串 它最多可以容纳 130 行和大约 10000 个字符 我如果我附加更多内容 但它只是不显示 没有错误 没有例外 所
  • 如何在谷歌地图中使用latlng字符串数组绘制多边形

    在我的应用程序中 我有包含 imagview 的 recyclerview 并且该 imageview 通过使用我存储在 sqlite 中的坐标包含静态地图图像 当我单击该图像时 我将该字符串数组格式的坐标传递给其他地图活动 然后使用该字符
  • Android Studio 1.2.1.1 中 Gradle 项目刷新失败

    我在全新安装的 Android Studio v 1 2 1 1 上创建了示例项目 但遇到了以下错误消息 Gradle project refresh failed in Android Studio 1 2 1 1 见下图 所以我试图在谷
  • 如何在android上模拟PC的Esc键

    我正在写一个可以在android上玩flash的应用程序 但是我无法模拟ESC键 因为很多flash游戏需要ESC键才能返回主菜单 没有这个键我制作的应用程序将毫无用处 谁能告诉我如何模拟这个 我可以只发送一个密钥代码吗 但我也不知道键码
  • 应用程序可能在其主线程上做了太多工作 - Android

    您好 我正在开发一个 Android 应用程序 当我尝试从我的应用程序发送电子邮件时遇到此错误 我在后台发送邮件而不使用基于意图这个链接 http www oodlestechnologies com blogs Send Mail in
  • PinnedHeader Google 加上 GridView?

    背景 Google google 应用程序可以很好地查看 亮点 类别中的图像 对于该屏幕上的每个部分 他们制作了一个标题 其中包含可单击的文本和一个用于选择该部分的所有照片的按钮 对于每个部分 他们还以网格状方式显示照片 它是这样的 这是另
  • 某些设备上的启动画面扭曲

    我在修复 Android 上的启动画面扭曲问题时遇到问题 我正在使用 React Native 请注意 这种情况仅发生在某些设备上 例如 我有一台 Android 版本为 4 2 2 的三星 启动画面不扭曲 而 Android 版本为 8
  • 如何从我的android联系人列表中的人名获取电话号码

    我想从我的联系人列表中的人名中获取他的电话号码 我已经使用了下面的代码 但它不能正常工作 告诉我我哪里错了 try cursor company getContentResolver query ContactsContract Data
  • 免费和付费版本 Android 应用程序的最佳方法?

    我开发了一个 Android 应用程序 我希望它可以作为免费版本和付费版本提供 最好的方法是什么 我可以想到三种解决方案 将项目分成两个分支并维护它们 创建一个库项目并有两个附加项目 一个 免费 版本和一个 付费 版本 使用应用内结算 问
  • 尝试在 android 中使用 Google Maps Android API v2 显示 StreetView 但无法使其正常工作

    我很长时间以来一直在尝试在 Android 中显示特定位置的街景 但不幸的是未能成功 我需要的是 如果我向地图提供位置 LAT LONG 它应该显示该特定位置的街景 以下是显示地图 3D 地图 混合地图 卫星视图等的工作代码 但不显示街景
  • 如何在android上使用xamarin表单执行脚本

    我正在尝试在 Android Mono 上使用 Xamarin Forms 运行 C 脚本 当我运行脚本时 我收到错误 System IO FileNotFoundException 找不到文件 mscorlib dll 这是我试图执行的代
  • Android SSH 示例代码

    我想创建一个 android 活动 用于与远程设备 通过 Wifi 建立 SSH 会话并在远程设备上执行一些 Linux 命令 任何人都可以获得一个快速 简短的示例 用于使用以下命令进行连接 身份验证和发送远程命令Trilead https
  • 找出该月第一个星期日/星期一等的日期

    我想在java中检测每个月第一周 第二周的第一个星期日 星期一的日期 我怎样才能实现它 我已经检查了 java 中的 Calendar 类和 Date 类 但无法找到解决方案 所以请帮助我解决这个问题 Calendar calendar C
  • Xamarin.Android JmDNS 绑定问题

    我开始研究 Xamarin Android 的 JmDNS 绑定 我设法构建了绑定 但无法从代码中引用它 https github com ytn3rd monodroid bindings tree master JmDNS https

随机推荐

  • 如何使用 Android Phonegap 读取条形码?

    我想使用 Android Phonegap 扫描条形码 我怎样才能做到这一点 查看 PhoneGap 条形码教程here 它将引导您逐步创建一个示例应用程序zxing通过 PhoneGap 插件紫甘蓝
  • 使用 JavaScript 测试输入是韩语还是中文的正确方法是什么?

    我的应用程序依赖此函数来测试字符串是否是韩语 const isKoreanWord input gt const match input match u3131 uD79D g return match match length input
  • 如何在 Swift 中使用 NSTimer 和 NSNotificationCentre 更新 UITableViewCells

    注意 寻求答案Swift please 我正在尝试做的事情 让表格视图单元格每 1 秒更新一次并显示实时 倒数 我目前是如何做的 我有一个表格视图 其中的单元格包含标签 生成单元格时 它们会调用一个函数来计算今天与存储的目标日期之间的时间
  • URL 长度的最佳限制是多少? 100, 200+

    我有一个 ASP Net 3 5 平台和带有所有更新的 Windows 2003 服务器 Net 有一个限制 它不能处理超过260 个字符 而且如果你上网查一下 你会发现IE 6如果不打补丁的话 在100个字符以上就无法工作 我希望最大数量
  • 带有 ListView 和按钮的 Android 布局

    好吧 这个特定的布局让我很恼火 并且似乎无法找到一种方法来拥有一个列表视图 在底部有一排按钮 这样列表视图就不会延伸到按钮的顶部 因此按钮总是捕捉到屏幕的底部 这就是我想要的 删除了无效的 ImageShack 链接 看起来应该很容易 但我
  • 在 C# 中功能性地遍历一棵树

    考虑 C 中的以下扩展方法 Traverse IEnumerable
  • 如何修复 ICE57.Per-User 安装

    我们的应用程序在运行时将注册表的一些设置写入 HKCU 配置单元 我想在卸载过程中删除此设置 这是代码
  • Backbone 和 Require 如何添加 Qunit

    我正在使用 Backbone 和 Require js 一切都很好 但是 我想向我的应用程序添加一些单元测试 我决定使用 Qunit js In my main js文件我创建新对象EventsView require config pat
  • 我可以在控件内托管 Windows 窗体吗

    我有一个客户 它是一个具有有线表示逻辑的单实例模式下的 Visual Basic 项目 主窗体包含一个具有多个选项卡页的 TabControl 如果我单击 TabPage 另一个窗体会显示在窗体前面 并调整大小以与 TabPage 具有相同
  • 如何获取Oracle中每个组的最大值? [复制]

    这个问题在这里已经有答案了 我已经找到了解决此问题的一些解决方案 但是它们似乎不适用于 Oracle 我懂了 我想要一个视图只显示每个团队中最年长的人的信息 所以 我的输出应该是这样的 PERSON TEAM AGE Sam 1 23 Mi
  • 获取发送到 click.group() 子命令的参数

    如果我有一个click group 对于多个子命令 有没有办法可以将命令行参数传递给组本身内的这些子命令 我知道你可以通过context 而且我知道我可以使用callback将在命令之前执行的函数 但我不知道是否有比使用更好的方法来执行此操
  • 有没有办法在 Windows 上的链接时重新定义 malloc?

    我想在链接时替换默认的 malloc 以使用自定义 malloc 但是当我尝试在程序中重新定义 malloc 时 出现以下错误 MSVCRT lib MSVCR80 dll error LNK2005 malloc already defi
  • Azure Functions,无法加载文件或程序集

    当使用NuGet协议Azure Functions 中的 NuGet 包 出现以下错误 System Private CoreLib Could not load file or assembly 4 18 2020 8 51 43 AM
  • 根据单元格值数据按路径引用 Excel 工作簿

    我有一个 Excel 工作表 可以从其他关闭的 Excel 工作簿中提取数据 目前 当我列出关闭的工作簿的整个路径时 它工作正常 但我想使用存储在单独单元格中的变量作为路径名的一部分 例如 我正在尝试引用名为的工作簿 工作簿12 10 12
  • 在 joomla 组件中写入多个表?

    我正在尝试创建一个使用多个表的组件 前端 我发现一两个帖子部分回答了这个问题 但没有一个真正回答了这个问题 对于知道如何做的人来说 这一点似乎总是简单明了 但从未真正解释过 或者我错过了正确的帖子 在我的组件中 用户在一个视图中输入需要存储
  • 需要处理 git-archive 中的 git-submodules

    我需要将 git 子模块打包到我创建的 tarball 中git archive 我在1 6 5中看到了git archive不支持 git 子模块 我在网上看到了几个处理这种情况的脚本 但我不确定该选择哪一个 最好 最官方的方法是什么 你
  • 在 C# Windows 服务上重定向 stdout+stderr

    我使用 C 编写了一个 Windows 服务ServiceBase帮手 在执行期间 会调用外部本机 DLL 中的一些过程 令人烦恼的是 这些过程以不受控制的方式写入 stdout 和 或 stderr 因为没有给出该 DLL 的源代码 是否
  • Android Studio:错误代码 1:Gradle:任务“:app:processDebugResources”执行失败

    我想编译一个项目 我得到了Error Gradle Execution failed for task app processDebugResources 这是例外 错误 Gradle 任务 app processDebugResource
  • 如何在javascript中检测浏览器渲染引擎?

    我读过一本名为 Professional Javascript For Web Developers 2nd Edition 的书 其中指出此代码可以检测浏览器渲染引擎
  • 如何控制recyclerView.smoothScrollToPosition(position)的滚动速度?

    我有一个回收器视图 我想要平滑地向下滚动 然后以编程方式向上滚动到它 以向用户显示其中的完整内容 我可以通过以下方式做到这一点 final int height recyclerView getChildAt 0 getHeight rec