我遇到了一些问题。我在做什么:我有一个ListView,里面有一些图像。为了使滚动更平滑,我禁用了滚动显示的图像。现在似乎Android中有一个bug,它有时会导致滚动状态不会从SCROLL_STATE_FLING变回SCROLL_STATE_IDLE,这会导致我的图像不再显示。
我的第一个想法是设置一个onTouchListener,并检查何时获得ACTION_UP,但这没有帮助,因为SCROLL_STATE_FLING状态显然是在此之后设置的。所以现在我认为我可以在设置SCROLL_STATE_FLING状态时启动一个计时器,并在一段时间后检查状态是否仍处于飞甩模式,然后使我的视图无效。但我不认为这是一个很好的解决方案。
有没有人有更好的想法,我该怎么做?我已经看到this的回复,但我需要API级别解决方案< 9(加上它有时也会发生,当它不是过度滚动时)
这是我的代码:
mList.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
mListAdapter.setIsScrolling(scrollState != SCROLL_STATE_IDLE);
Log.i(this, "scrollStateChanged" + scrollState);
if (scrollState == SCROLL_STATE_IDLE) {
mList.invalidateViews();
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});谢谢,
玛丽亚