我有一个viewflipper,在XML中有三个直接子1,2,3。但他们被显示为1,3,2。 我认为我的fling代码有问题,如下所述 ViewFlipper order of items
但我无法理解这个概念。
<ViewFlipper
android:id="@+id/view_flipper"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/ag"
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:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="@string/how_to_use_text"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="@color/grey_text" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="@string/how_to_use_text1"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="@color/grey_text" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:adjustViewBounds="true"
android:src="@drawable/tour_1" />
</LinearLayout>
<LinearLayout
android:id="@+id/bg"
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:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="45dp"
android:text="@string/how_to_use_text2"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="@color/grey_text" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:adjustViewBounds="true"
android:src="@drawable/tour_2" />
</LinearLayout>
<LinearLayout
android:id="@+id/cg"
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:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="70dp"
android:text="@string/how_to_use_text3"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="@color/grey_text" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:adjustViewBounds="true"
android:src="@drawable/tour_3" />
</LinearLayout>
</ViewFlipper>
我的onfling代码
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
try {
if(e1.getX() > e2.getX() && Math.abs(e1.getX() - e2.getX()) > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
//mVf.setOutAnimation(animFlipOutPrevious);
//mVf.setInAnimation(animFlipInPrevious);
mVf.showPrevious();
}else if (e1.getX() < e2.getX() && e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// mVf.setOutAnimation(animFlipOutNext);
// mVf.setInAnimation(animFlipInNext);
mVf.showNext();
}
updateDots(mVf.getDisplayedChild());
} catch (Exception e) {
// nothing
}
return true;
}
提前感谢
答案 0 :(得分:0)
使用mVf.showNext()和mVf.showNext()与mVf.showPrevious()交换mVf.showPrevious() 在您的onFling方法中它应该解决您的问题。
以下是解决方案的解释。 情况1: 其中e1.getX()&gt; e2.getX(),表示从右向左滑动(显示下一页)。在这里你应该使用mVf.showNext() 案例2: 其中e1.getX()&lt; e2.getX()表示从左向右滑动(显示上一页)。在这里你应该使用mVf.showPrevious()