嗨,我正在实现一个 gridView,我无法让它在每个滚动事件中一次向下滚动 1 行。
我的网格有 1 行项目的高度(项目高度为 75dp)。我不想滚动留在一行的中间。
有没有办法可以拦截和修改滚动距离,使其只返回固定值,例如:+-75dp。
如果您能给我任何帮助或建议,我将不胜感激。tnx
嗨,我正在实现一个 gridView,我无法让它在每个滚动事件中一次向下滚动 1 行。
我的网格有 1 行项目的高度(项目高度为 75dp)。我不想滚动留在一行的中间。
有没有办法可以拦截和修改滚动距离,使其只返回固定值,例如:+-75dp。
如果您能给我任何帮助或建议,我将不胜感激。tnx
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)