当前位置: 首页 > 面试题库 >

如何获得ListView上的滚动速度?

熊锐进
2023-03-14
问题内容

我有一个带有onScrollStateChanged和onScroll事件侦听器的ListView。我希望能够获得ListView的滚动速度,或者以某种方式在某个事件侦听器中获得已启动滚动的finalX位置。我们的应用定位到SDK版本7。

我需要测量或获取ListView滚动的速度。


问题答案:

划分第一个可见项时差对时差不是一个好的解决方案。OnScroll侦听器每隔固定的时间周期接收一次onScroll事件,因此在大多数情况下,除法结果将为“
0”。

因此,您可以尝试执行以下操作:

private OnScrollListener onScrollListener = new OnScrollListener() {

    private int previousFirstVisibleItem = 0;
    private long previousEventTime = 0;
    private double speed = 0;

    @Override
    public void onScroll(HtcAbsListView view, int firstVisibleItem,
            int visibleItemCount, int totalItemCount) {

        if (previousFirstVisibleItem != firstVisibleItem){
            long currTime = System.currentTimeMillis();
            long timeToScrollOneElement = currTime - previousEventTime;
            speed = ((double)1/timeToScrollOneElement)*1000;

            previousFirstVisibleItem = firstVisibleItem;
            previousEventTime = currTime;

            Log.d("DBG", "Speed: " +speed + " elements/second");
        }

    }

    @Override
    public void onScrollStateChanged(HtcAbsListView view, int scrollState) {
    }
};


 类似资料:
  • 我正在项目的中添加。 所有工作都很好,但在JPanel中使用鼠标滚轮滚动鼠标存在一个问题。滚动时速度很慢。如何让它更快? 我的代码是:

  • 我需要在gke中部署一个Web应用程序。该应用程序由两个pod组成,需要扩展到约30个副本。 滚动更新需要大约30秒/吊舱在我们的设置。 旧标题:如何在GKE集群上启用部署API? 我尝试使用部署,因为它们允许并行更新多个pod。但是,正如nshttpd在《kubernetes slack上的谷歌容器》中指出的那样:我可能错了,但我认为GKE集群没有beta版的功能。因此,如果您想要部署,就必须启

  • 嗨,有没有什么方法可以提高滚动速度。我找到了一些解决方案,但都不适合我。这就是我尝试的: 或者使用css: 还有别的办法吗?编辑:上面的解决方案都不起作用,我试图使用大得离谱的数字,但滚动速度还是一样

  • 如何获取用户在滚动视图中滚动的像素量。我有一个包含大量文本的滚动视图。我在屏幕底部还有一个按钮。我想要的是将按钮上的文本更改为滚动视图中的滚动量。 这是我的滚动视图: 我的按钮是 我听说这可以通过使用< code>getScrollY()方法来实现。但不知道如何编程使用它。

  • 问题内容: 我有两个ListView要滚动在一起的对象。它们 并排放置,因此,如果一个滚动一定数量,则另一个滚动相同 数量。我已经找到了一些有关如何执行此操作的示例,但我相信它们 依赖于ListView高度相同的项目(如果我 错了,请纠正我)。我的一个ListView对象中的项目比另一个对象中的项目高 ,跨越2-3个项目。 如何将这两个对象“锁定”在一起? 编辑:这是我所拥有的屏幕截图,也许它将更

  • 问题内容: 如何在JavaScript中确定水平滚动条的高度或垂直滚动​​条的宽度? 问题答案: 我还没有尝试过。请让我知道这对你有没有用。