我有一个 GridView 可以显示您画廊中的图像。当用户滚动列表时,有关图像的详细信息从左侧开始显示。我在为 GridView 项定义自定义布局的类中实现了这一点。它扩展了 LinearLayout。
OnScrollChangedListener mScrollListener = new OnScrollChangedListener() {
@Override
public void onScrollChanged() {
if (!getGlobalVisibleRect(r)) {
resetAnimation();
} else {
if (checkBounds()) {
showInfo();
}
} else {
hideInfo();
}
如果它的视图在屏幕上不可见,方法resetAnimation()会重置动画。方法checkBounds()将得到的 Rect 与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() 永远不会被触发,无论是在物理设备还是模拟器上。
这是一个错误还是我错过了什么?