次の動作を持つカスタム ListView を作成する必要があります。2. ユーザーが指を下ろして指をゆっくり動かすと、ListView はタッチ イベントを Child に渡す必要があり、Child は ListView アイコン名を表示します。3. ユーザーが一定の速度または十分な速さで指を動かすと、リストがスクロールしてリスト内の次の項目を表示します。
これを達成するために、次のようにListViewからdispatchTouchEventメソッドをオーバーライドしようとしました。
@Override
public boolean dispatchTouchEvent(MotionEvent ev)
{
if(ev.getAction() == MotionEvent.ACTION_MOVE)
{
int height = getHeight();
if((height - ev.getY())<100)//when finger is moving downwards
{
smoothScrollBy(50, 100);
}
if(ev.getY()<100)// when finger moves upwards.
{
smoothScrollBy(-50,100);
}
return true;
}
return super.dispatchTouchEvent(ev);
}
上記の実装では、指を特定のポイントに移動し、リストを 100 ミリ秒で 50 ピクセルずつスクロールできます。ここでは、ListView Flings と速度を取得できません。そこで、 OnTouchEvent() メソッドで GestureListner を ListView に追加しようとしました。しかし、その後は最初の OnFling しか得られず、タッチの動きはありません。そのようなListViewまたはそのような動作をする他のスクロールビューを作成できる人がいますか。ありがとう。