java - 仅在滚动功能完成后获取项目

标签 java android view scroll

我正在使用导航菜单 View ,并以编程方式滚动它,然后获取其项目的 Y 位置。 但是,获取项目位置的代码在列表(使用布局管理器)开始滚动之后以及尚未完成滚动和更改位置时立即运行。 在“scrollToPositionWithOffset”等待滚动操作结束后,如何执行其余代码?

这是我的代码:

    RecyclerView recyclerView = (RecyclerView) navigationView.getChildAt(0);
    LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();

    layoutManager.scrollToPositionWithOffset(4, 0);

     //it should wait the line above run completely to can run too
    mImage.animate().y(navView.getChildAt(4).getY());

最佳答案

您应该使用滚动监听器来监听滚动状态更改为空闲的情况。请参见下文。

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
  @Override
   public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {

     mImage.animate().y(navView.getChildAt(4).getY());
     recyclerView.removeOnScrollListener(this);
    }

  }

}

   layoutManager.scrollToPositionWithOffset(4, 0);

关于java - 仅在滚动功能完成后获取项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42771648/

相关文章:

javascript - 为什么 JavaScript Promise 无法在使用 Ionic 框架的 Android 4.4 上运行?

javascript - 通过按下按钮加载具有不同数据的相同组件

html - Css 布局 Bootstrap 覆盖

java - 创建 Java 代码的图表表示/从代码获取图表/将代码转换为图表的工具?

java - 使用 Seekbar 更改 Fragment 类中的 TextView 值

java - Jsoup child 尺寸值不正确

android - 如何使用点击列表项将值从一个 Activity 传递到另一个 Activity

mysql - 显示所有记录,即使为 NULL

java - 为什么使用 Material 按钮时我的应用程序崩溃?

java - 如何在 Spring 应用程序上下文中扩展已定义的列表和映射?