How to check if a my ListView has scrollable number of items?

后端 未结 8 655
故里飘歌
故里飘歌 2020-12-30 04:00

How do you know if your ListView has enough number of items so that it can scroll?

For instance, If I have 5 items on my ListView all of it will be displayed on a si

8条回答
  •  -上瘾入骨i
    2020-12-30 04:40

    Diegosan's answer cannot differentiate when the last item is partially visible on the screen. Here is a solution to that problem.

    First, the ListView must be rendered on the screen before we can check if its content is scrollable. This can be done with a ViewTreeObserver:

    ViewTreeObserver observer = listView.getViewTreeObserver();
        observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    
            @Override
            public void onGlobalLayout() {
                if (willMyListScroll()) {
                     // Do something
                } 
            }
        });
    

    And here is willMyListScroll():

    boolean willMyListScroll() {   
        int pos = listView.getLastVisiblePosition();
        if (listView.getChildAt(pos).getBottom() > listView.getHeight()) {
            return true;
        } else {
            return false;
        }
    }
    

提交回复
热议问题