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

OnScrollChangedListener mScrollListener = new OnScrollChangedListener() {
    @Override
    public void onScrollChanged() {
        if (!getGlobalVisibleRect(r)) {
            resetAnimation();
        } else {
            if (checkBounds()) {
                    showInfo();
            }
            } else {
                    hideInfo();
            }

方法resetAnimation()如果动画的视图在屏幕上不可见,则重置该动画。方法checkBounds()比较getGlobalVisibleRect(r)得到的rect和表示屏幕的rect,以检查是否应该显示详细信息视图。
我将侦听器添加到onfinishflate()中,如下所示:
        getViewTreeObserver().addOnScrollChangedListener(mScrollListener);

现在实际问题是:
API19、API18、API17和API13上的一切工作正常,在实际设备和模拟器上都进行了测试。在API 14(Android 4.0.1和4.0.2)上,onScrollChanged()在物理设备和模拟器上都不会被触发。
是虫子还是我遗漏了什么?

最佳答案

你能试着用OnScrollChangedListener代替OnScrollListener吗?

    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中开火,但你可以试试这个…

08-18 07:51
查看更多