1

我有一个GridView10 行和 10 列。当活动开始GridView滚动到最后一个位置时,我可以在从最后一行选择项目后从最后一行选择一个项目,它将滚动到倒数第二行..等等。但我smoothscrollToPosition不是工作(只是不时反弹)所以我做了这个gridView.smoothScrollBy(-63,1000)但是我没有得到一个好的结果,因为这个滚动对于每部手机都没有统一的位置。所以我必须做些什么才能让每部手机都有统一的滚动。?

4

1 回答 1

0

而不是使用gv.smoothScrollBy()尝试使用gv.smoothScrollTo()并提及您希望它显示的特定位置,因为 scrollBy 将滚动那么多像素而不是指向那个特定位置。

另请参阅,如果您提供的值不在屏幕范围内,那么它将开始显示奇怪的结果,这通常发生在您尝试具有不同屏幕尺寸的不同设备并且您提到的像素不可见时区域。为此尝试使用:

private int getVisibleArea()
{
    int measureValue = 0;
    switch (getResources().getDisplayMetrics().densityDpi) {
    case DisplayMetrics.DENSITY_MEDIUM:
        measureValue =(screenHeight);
        break;
    case DisplayMetrics.DENSITY_HIGH:
        measureValue = (screenHeight);
        break;
    case DisplayMetrics.DENSITY_XHIGH:
        measureValue = (screenHeight);
        break;
    }
    return measureValue;
}

其中 screenHeight 是:

Display display = getWindowManager().getDefaultDisplay();
            screenHeight = display.getHeight();
于 2013-05-20T06:07:29.483 回答