Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在浏览页面上滑动_Android_Listeners - Fatal编程技术网

Android 在浏览页面上滑动

Android 在浏览页面上滑动,android,listeners,Android,Listeners,我有一个ViewFlipper,其中有四个滚动视图,其中有布局 我使用以下代码(对于每个滚动视图)进行滑动: ScrollView View1 = (ScrollView) findViewById(R.id.View1); View1.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { // TODO Aut

我有一个ViewFlipper,其中有四个滚动视图,其中有布局

我使用以下代码(对于每个滚动视图)进行滑动:

ScrollView View1 = (ScrollView) findViewById(R.id.View1);
    View1.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub

            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                FirstX = (int) event.getX();
            }

            if (event.getAction() == MotionEvent.ACTION_MOVE) {
                int LastX = (int) event.getX();

                if (FirstX - LastX > SWIPE_MIN_DISTANCE) {
                    viewFlipper.setInAnimation(slideLeftIn);
                    viewFlipper.setOutAnimation(slideLeftOut);
                    viewFlipper.showNext();
                } else if (LastX - FirstX > SWIPE_MIN_DISTANCE) {
                    viewFlipper.setInAnimation(slideRightIn);
                    viewFlipper.setOutAnimation(slideRightOut);
                    viewFlipper.showPrevious();
                }
            }

            return true;
        }
    });
它可以工作,但是如果我从视图1滑动到视图2,我会看到一个视图2和视图3混合在一起,最后会显示视图4

因此,似乎每个视图的OnTouch侦听器都在后面调用。 我怎样才能防止这种情况发生

短而快的刷卡完成了它应该做的事情

rg,
Eric

setOnTouchListener将调用multible time(当您滑动手指时),因此

威尔被叫了多次


我建议您使用ViewFlipper而不是ViewFlipper。

您应该将您在
MotionEvent.ACTION\u move
中的代码移动到
MotionEvent.ACTION\u UP
以获得滑动。现在,如果你不想刷卡,想用手指移动屏幕,你应该像JafarKhQ刚才提到的那样实现
ViewPager

如果你的答案没有涵盖这个问题,请添加它作为注释。这让我回到了一开始,没有什么需要工作的地方。我真的很高兴能够在布局之间滑动。从动作移动到动作向上的切换成功了。现在我可以毫无问题地在滚动视图之间滑动。谢谢
viewFlipper.setInAnimation(slideLeftIn);
viewFlipper.setOutAnimation(slideLeftOut);
viewFlipper.showNext();