How to get the scroll speed on a ListView?

前端 未结 6 1442
逝去的感伤
逝去的感伤 2020-12-13 15:09

I have a ListView with onScrollStateChanged and onScroll event listeners. I want to be able to get the scroll speed of the ListView or some way to get the finalX location of

6条回答
  •  情书的邮戳
    2020-12-13 15:24

    Try it:

    private class SpeedMeterOnScrollListener implements OnScrollListener {
    
        private long timeStamp;
        private int lastFirstVisibleItem;
    
        public SpeedMeterOnScrollListener() {
            timeStamp = System.currentTimeMillis();
            lastFirstVisibleItem = 0;
        }
    
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            long lastTime = System.currentTimeMillis();
            //calculate speed by firstVisibleItem, lastFirstVisibleItem, timeStamp and lastTime
            timeStamp = lastTime;
            lastFirstVisibleItem = firstVisibleItem;
        }
    
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
        }
    }
    

提交回复
热议问题