私はGridView
10行と10列を持っています.アクティビティがGridView
最後の位置へのスクロールを開始すると、最後の行からアイテムを選択した後、最後の行からアイテムを選択できます..など.しかし、私はそうではsmoothscrollToPosition
ありません動作しています(時々バウンスするだけです)だから私はこれをしましgridView.smoothScrollBy(-63,1000)
たが、このスクロールはすべての電話で均一な位置を持っていないため、良い結果が得られません。
3448 次
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 に答える