1

嗨,我正在实现一个 gridView,我无法让它在每个滚动事件中一次向下滚动 1 行。

我的网格有 1 行项目的高度(项目高度为 75dp)。我不想滚动留在一行的中间。

有没有办法可以拦截和修改滚动距离,使其只返回固定值,例如:+-75dp。

如果您能给我任何帮助或建议,我将不胜感激。tnx

4

1 回答 1

2

APIv8 有新功能,称为 smoothScrollBy(int distance, int duration)[1]

我认为您应该捕获所有滚动事件并实现自己的方法来滚动视图。如果您想滚动 75dp,只需将其转换为像素并使用上面的功能。

float density = getContext().getResources().getDisplayMetrics().density;
int scrollBy = (int)(density * 75);
smoothScrollBy(scrollBy, 0);

但是从你的GridView计算scrollBy会很好,而不是使用一些常数值(比如75dp)

[1]: http: //developer.android.com/reference/android/widget/AbsListView.html#smoothScrollBy (int , int)

于 2011-01-22T14:07:43.477 回答