1

次の動作を持つカスタム 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またはそのような動作をする他のスクロールビューを作成できる人がいますか。ありがとう。

4

0 に答える 0