使用 LinearLayoutManager 滚动到 RecyclerView 顶部

2024-03-12

我有一个片段,其中有RecyclerView with LinearLayoutManager其中有CardView项目。有一个浮动操作按钮,单击该按钮,项目将滚动到顶部。我尝试过使用scrollToPositionscrollToPositionWithOffset with RecyclerView并且还与LinearLayoutManager如下所示。但它根本没有任何作用。为什么会这样呢?谁能帮我一下。

我已经放置了RecyclerView直接在里面SwipeRefreshView在 xml 文件中。我正在打电话setFloatingActionButton一旦将适配器设置为RecyclerView.

 public void setFloatingActionButton(final View view) {
    float = (android.support.design.widget.FloatingActionButton) getActivity().findViewById(R.id.float);
    float.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
    mRecyclerView.smoothScrollToPosition(0);


            android.support.design.widget.Snackbar.make(view, "Scrolled to Top", android.support.design.widget.Snackbar.LENGTH_SHORT)
                    .setAction("Ok", new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            LinearLayoutManager llm = (LinearLayoutManager) mRecyclerView.getLayoutManager();
                            llm.scrollToPosition(0);

                        }
                    })
                    .setActionTextColor(getActivity().getResources().getColor(R.color.coloLink))
                    .show();
        }
    });
}

继续上述评论,理想情况下,替换

mRecyclerView.smoothScrollToPosition(0);

in the onClick浮动操作按钮的

mLayoutManager.scrollToPositionWithOffset(0, 0);

应该管用。您还可以删除SnackBar代码,因为你根本不需要它。所以,总而言之,你的上述方法应该看起来像

public void setFloatingActionButton(final View view) {
    float actionButton = (android.support.design.widget.FloatingActionButton) getActivity()
            .findViewById(R.id.float);
    actionButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            LinearLayoutManager layoutManager = (LinearLayoutManager) mRecyclerView
                    .getLayoutManager();
            layoutManager.scrollToPositionWithOffset(0, 0);
        }
    });
}

如果你说上面的方法不起作用,那么测试一下是否onClick()甚至是否被调用。尝试在其中添加一条日志消息并查看是否打印出来。

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

使用 LinearLayoutManager 滚动到 RecyclerView 顶部 的相关文章

随机推荐

  • APK 安装失败:[INSTALL_FAILED_VERIFICATION_FAILURE]

    我正在尝试在运行 Jelly Bean 4 2 AOSP 版本的设备上安装 APK 当我 adb install my apk 时 出现错误 安装 失败 验证 失败 我尝试使用 testsign jar 来 签名 apk 但它不会改变结果
  • RegExpValidator 无法正确验证 URL 模式

    The URL http www ftd de rss2 http www ftd de rss2当我在这个 不冒险的 中对照下面的正则表达式检查它时 它是无效的
  • aapt.exe'' 以非零退出值 1 完成

    我有问题 当我运行我的应用程序时写 Error Execution failed for task app processDebugResources gt com android ide common process ProcessExc
  • 如何从命令行启动SVN项目?

    因此 我在本地计算机上创建了一个 Ruby on Rails 应用程序 我有一个我创建的远程存储库 现在我如何第一次签入 我以前从未创建过自己的svn项目 所以我不知道该怎么做 我只对我从事过的项目做出了承诺 解决方案 cd my proj
  • jQuery mouseoverIntent 不起作用,但悬停可以

    我有以下代码 document ready function yearInner hide year this hover function yearInner this slideToggle 它隐藏了带有 YearInner 类的 di
  • 如何删除选取框中的尾随空格?

    我开发了一个不断向上移动的大帐篷 但确切的问题是 在滚动完最后一个图像后 第一个图像和最后一个图像之间存在巨大的差距 我只想删除附加到最后一张图像底部的尾随空格 有没有人帮我找出解决方案 提前致谢 HTML div style margin
  • @font-face 在 Firefox 中不起作用?

    这是由 FontSquirrel 生成的代码 在所有其他浏览器 包括 IE 中都可以正常工作 但在强大的 Firefox 中却不行 我究竟做错了什么 ps 我使用的是FF3 5 如果您无法查看我的示例 请参阅以下来源
  • Android手机休眠时网络访问

    我正在使用警报组合 设置为AlarmManager 和后台服务定期同步我的应用程序中的数据 我遇到的唯一问题是 当睡眠策略终止 Wi Fi 连接时 同步将不再起作用 有没有办法 唤醒 已进入睡眠状态的 Wi Fi 连接 GMail 以某种方
  • XA/JTA 事务还在使用吗?

    我有一个与多个数据库和一些自定义服务交互的应用程序 对于某些操作 我需要类似事务的行为 其中一组更改要么跨所有数据库 服务提交 要么在发生错误时全部回滚 X Open 组的 XA 标准和 Java JTA 似乎使用两阶段提交过程正好解决了这
  • 如何在 Haskell 中连接变量参数?

    Shell monad 支持可变参数 https hackage haskell org package shell monad 0 6 9 docs Control Monad Shell html t CmdParams 但是我找不到一
  • 如何从供应商目录生成 laravelcomposer.json? [复制]

    这个问题在这里已经有答案了 在我的 Laravel 项目中composer json and composer lock文件被删除了 不知道如何重建composer json从现有的文件vendor目录 Note 使用此方法的缺点是主com
  • SwiftUI:如何获取动态列表或 LazyVStack 中的视图框架

    我想在 LazyVStack 中获取视图的框架 嵌入 ScrollView 中的 LazyVStack 显示聊天消息 文本和图像 因为内容是动态调整大小的 所以我无法使用 GeometryReader 代理 将 GeometryReader
  • 如何在抽象类中声明重载运算符并在派生的非抽象类中重写它?

    我正在尝试编写一个带有一些纯虚拟二元运算符的抽象类 这些运算符应该由派生类实现以实现运算符多态性 这是一个简化的示例 class Base public virtual const Base operator const Base cons
  • Jquery:对一个 .click 事件使用两个选择器?

    如果我有这样的事情 jq elements children input click function 如何向其中添加另一个选择器 以便单击任一选择器时都会触发相同的事件 基本上需要这样的东西 jq elements jq another
  • 如何确定特定 Sql Server 2000 数据库中任何记录的最后更改时间?

    我有一个很少更新的 SQL Server 2000 数据库实例 我还有一个数据库表 其中没有保存每行的创建日期或修改日期的列 有什么方法可以确定上次对整个数据库执行更新或插入的时间 以便我至少可以限制表中的特定记录何时可能发生更改 注意 我
  • “盒子模型”CSS 有多少种类型?

    盒子模型 CSS 有多少种类型 CSS3 有两种盒子模型 content box and border box content box是默认值 content box content box是自 CSS 版本 1 以来默认的 CSS 盒子模
  • 当 onclientclick 为 false 时阻止 onclick 触发?

    是否可以使用onclientclick用于进行客户端检查的按钮的属性 如果支票退回true 然后开火onclick甚至 如果客户端检查返回false 不要开火onclick event 那可能吗 UPDATE 这两个工作 Stops the
  • BigQuery 物化视图 - 组中最后一个

    在 BigQuery 中 是否可以创建一个物化视图 其中包含基表中每个组的最新行 e g CREATE TABLE basetable group id INT64 timestamp TIMESTAMP value FLOAT64 INS
  • 求和面积表 (SAT) 的 3D 变体

    根据维基百科 A 面积求和表 http en wikipedia org wiki Summed area table是一种数据结构和算法 用于快速有效地生成网格矩形子集中的值之和 对于二维空间 可以通过迭代生成求和面积表x y超过所需的范
  • 使用 LinearLayoutManager 滚动到 RecyclerView 顶部

    我有一个片段 其中有RecyclerView with LinearLayoutManager其中有CardView项目 有一个浮动操作按钮 单击该按钮 项目将滚动到顶部 我尝试过使用scrollToPosition也scrollToPos