我有一个GridView
,包含10行和10列。当活动开始时GridView
滚动到最后一个位置,然后我可以从最后一行中选择一个项目将滚动到倒数第二行..但是我的smoothscrollToPosition
无法正常工作(只是不时弹跳)所以我已经完成了这个gridView.smoothScrollBy(-63,1000)
但是我没有得到一个好的结果因为这个滚动没有每个手机的统一位置。所以我必须做的就是为每部手机进行统一滚动。
答案 0 :(得分: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();