ViewFlipper控件是系统自带控件,可以直接在布局文件里面添加,需要滑动的内容写在ViewFlipper里面,如下:
<ViewFlipper android:id="@+id/vf" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/visa" android:textColor="@drawable/blue" /> <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/visa_512" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/mastercard" android:textColor="@drawable/blue" /> <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/mastercard_512" /> </LinearLayout> </ViewFlipper>
在代码里面,通过showNext()方法和showPrevious()方法来实现显示下一个或上一个layout布局
@Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: oldTouchValue = event.getX(); break; case MotionEvent.ACTION_UP: if (oldTouchValue < event.getX()) { //向左滑 vf.setInAnimation(AnimationHelper.inFromLeftAnimation()); vf.setOutAnimation(AnimationHelper.outToRightAnimation()); vf.showNext(); } else if (oldTouchValue > event.getX()) { //向右滑 vf.setInAnimation(AnimationHelper.inFromRightAnimation()); vf.setOutAnimation(AnimationHelper.outToLeftAnimation()); vf.showPrevious(); } break; } return super.onTouchEvent(event); }