onScrollChanged()从未在Android 4.0上启动

onScrollChanged()从未在Android 4.0上启动,android,gridview,android-4.0-ice-cream-sandwich,onscroll,Android,Gridview,Android 4.0 Ice Cream Sandwich,Onscroll,我有一个GridView,可以显示您图库中的图像。当用户滚动列表时,有关图像的详细信息将从左侧进入动画。我在为GridView项定义自定义布局的类中实现了这一点。它延伸到线性布局 方法resetAnimation()如果动画的视图在屏幕上不可见,则重置动画。方法checkBounds()将GET与getGlobalVisibleRect(r)以及表示屏幕的Rect进行比较,以检查是否应显示详细信息视图 我将侦听器添加到onFinishInflate()中,如下所示: getVie

我有一个GridView,可以显示您图库中的图像。当用户滚动列表时,有关图像的详细信息将从左侧进入动画。我在为GridView项定义自定义布局的类中实现了这一点。它延伸到线性布局

方法resetAnimation()如果动画的视图在屏幕上不可见,则重置动画。方法checkBounds()将GET与getGlobalVisibleRect(r)以及表示屏幕的Rect进行比较,以检查是否应显示详细信息视图

我将侦听器添加到onFinishInflate()中,如下所示:

        getViewTreeObserver().addOnScrollChangedListener(mScrollListener);
现在是实际问题:
在API 19、API 18、API 17和API 13上,一切都可以正常工作,并在真实设备和模拟器上进行了测试。在API 14(Android 4.0.1和4.0.2)上,onScrollChanged()在物理设备和模拟器上都不会被触发。

这是一个bug还是我遗漏了什么?

你能用
OnScrollChangedListener
代替

    gridView.setOnScrollListener(new AbsListView.OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub

        }
    });
我不知道为什么它没有在4.0中启动,但是你可以试试这个

    gridView.setOnScrollListener(new AbsListView.OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub

        }
    });