在布局中滑动动画:android

在布局中滑动动画:android,android,layout,Android,Layout,我知道动画效果以及如何将它们应用到onclicklistener、ontouchlistener等的视图(布局)中,但当我将布局向左或向右滑动时会发生什么事件 previousButton.setOnClickListener(new OnClickListener() { @Override publicvoid onClick(View v) { viewFlipper.setInAnimation(MainActivity.t

我知道动画效果以及如何将它们应用到onclicklistener、ontouchlistener等的视图(布局)中,但当我将布局向左或向右滑动时会发生什么事件

previousButton.setOnClickListener(new OnClickListener()  {
      @Override 
        publicvoid onClick(View v) {  
              viewFlipper.setInAnimation(MainActivity.this,R.anim.view_transition_in_right);
               viewFlipper.setOutAnimation(MainActivity.this,R.anim.view_transition_out_right);
               viewFlipper.showPrevious();  
      }  
    });  
}

我不想成为一个听者。ie)如果我触摸并向左滑动当前布局,它应该熄灭,下一个布局应该在当前视图中。如何操作?

您应该使用片段在视图之间滑动。使用FragmentActivity和Fragment(对于每个视图)


或者您可以直接使用此

您需要查看寻呼机-


也很容易实现,您只需以与ListView类似的方式提供适配器。

让您的活动实现OnTestureListener

然后在活动中添加

private GestureDetector gestureScanner;
gestureScanner = new GestureDetector(this);
private static final int SWIPE_MIN_DISTANCE = 100;
    private static final int SWIPE_THRESHOLD_VELOCITY = 100;
然后重写onTouchEvent(MotionEvent事件),如下所示:

@Override
    public boolean onTouchEvent(MotionEvent event) {
        return gestureScanner.onTouchEvent(event);
    }
最后,您还需要重写onFling方法,例如:

@Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        /* on scroll to the next page */
        if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY
                ) {
            //Ur code goes here
        }
        /* on scroll to the previous page  */
        else if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY
                ) {
            //ur code goes here.
        }
        return false;
    }

希望这能有所帮助。

这对我很有效,但不是完全有效。我当前的布局在页面中有大量视图,当我在这些视图上滑动时,它将无法工作。只有当我沿着应用程序顶部的标题栏滑动时,滑动才能正常工作。有没有一种方法可以在整个屏幕上滑动该功能?我在这里找到了解决方案。如果使用视图组检测滑动,则可以实现onInterceptTouchEvent以获取所有运动事件,并选择是否必须由子视图处理这些事件,或是否组成滑动手势。