onScroll gets called when I set listView.onScrollListener(this), but without any touch

后端 未结 5 1441
轻奢々
轻奢々 2020-12-29 02:27

When I set the onScrollListener for my ListView, it calls onScroll. This causes a crash because certain things haven\'t been initializ

5条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-29 03:24

    Just a reminder, according to the javadoc of

    MotionEvent.ACTION_SCROLL :

    This action is always delivered to the window or view under the pointer, which may not be the window or view currently touched.

    This action is not a touch event so it is delivered to onGenericMotionEvent(MotionEvent) rather than onTouchEvent(MotionEvent).

    Hence, motionEvent.getAction() will never gets the SCROLL event. Check for MOVE will do the job

    You can also do the similar thing in the onScrollStateChanged method of the OnScrollListener

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
            if(scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL){
                userScrolled = true;
            }   
    }
    

提交回复
热议问题