1

Viewflipper を作成しています。しかし、実行して画面上で手を動かそうとしても何も起こりません。私は何を見逃していますか?ありがとう

これがJavaコードです。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gallery);

    flipper = (ViewFlipper)findViewById(R.id.flipperGallery);
    flipper.setOnTouchListener((android.view.View.OnTouchListener) this);
}

@Override
public boolean onTouchEvent(MotionEvent touchevent) {
switch (touchevent.getAction())
{
    case MotionEvent.ACTION_DOWN:
    {
    lastX = touchevent.getX();
    Toast.makeText(this, "X: " + lastX, Toast.LENGTH_LONG).show();

    break;
    }
case MotionEvent.ACTION_UP:
    {
    float currentX = touchevent.getX();
    if (lastX < currentX){
        Toast.makeText(this, "scroll right: ", Toast.LENGTH_LONG).show();

        if (flipper.getDisplayedChild()==0) break;
        flipper.setInAnimation(this, R.anim.in_from_left);
        flipper.setOutAnimation(this, R.anim.out_to_right);
        flipper.showNext();
        }
    if (lastX > currentX){
        Toast.makeText(this, "scroll left: ", Toast.LENGTH_LONG).show();

        if (flipper.getDisplayedChild()==1) break;
        flipper.setInAnimation(this, R.anim.in_from_right);
        flipper.setOutAnimation(R.anim.out_to_left);
        flipper.showPrevious();
        }
    break;
    }
}
return false;
}

Viewflipper を作成しています。しかし、実行して画面上で手を動かそうとしても何も起こりません。私は何を見逃していますか?ありがとう

4

1 に答える 1

1

onTouchEvent で ACTION_DOWN を受け取り、false を返すと、ACTION_UP などのそれ以上のイベントを受け取りません ...
これを試してください:

case MotionEvent.ACTION_DOWN:
{
lastX = touchevent.getX();
Toast.makeText(this, "X: " + lastX, Toast.LENGTH_LONG).show();

return true;
}
于 2013-02-13T18:40:47.110 に答える