【发布时间】:2011-11-15 17:35:50
【问题描述】:
我遇到了一些问题。我在做什么:我有一个 ListView,里面有一些图像。为了使滚动更流畅,我禁用了滚动时显示的图像。现在,Android 中似乎有一个bug,它有时会导致滚动状态不会从 SCROLL_STATE_FLING 变回 SCROLL_STATE_IDLE,这会导致我的图像不再显示。
我的第一个想法是设置一个 onTouchListener 并检查何时获得 ACTION_UP,但这无济于事,因为 SCROLL_STATE_FLING 状态显然是在那之后设置的。所以现在我想我可以在设置 SCROLL_STATE_FLING 状态时启动一个计时器,并在一段时间后检查该状态是否仍处于投掷模式,然后使我的视图无效。但我认为这不是一个很好的解决方案。
有没有人对我如何做到这一点有更好的想法?我已经看到this 的回复,但我需要 API 级别
这是我的代码:
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) {
}
});
谢谢, 玛丽亚
【问题讨论】: