在我的應用程序中,我有一個listView。我有一個ViewFlipper,它是ListView的頭部。viewFlipper和onTouchListener在listView的標題中
我希望ViewFlipper在用戶觸摸並滑動時切換視圖。此外,ViewFlipper的項目是可點擊的。 我的問題是我的ListView也是可滾動的,但是垂直的,可點擊的。
這裏是一個模式:
首先,我試圖使用的onTouchEvent。它不起作用,因爲即使用戶觸摸ViewFlipper的屏幕OUT,也會調用該方法。
現在,如果我使用OuTouchListener,我無法攔截用戶的手勢,我無法弄清楚。
下面是XML代碼的爲ListView的報頭中的樣品:
<ViewFlipper
android:id="@+id/flipune"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="3" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageButton
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/itemviewflipper1"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:background="@android:color/transparent"
android:contentDescription="@string/stritemviewflipper" />
<TextView
android:id="@+id/titreviewflipper1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/itemviewflipper1"
android:background="#AA000000"
android:paddingTop="10dip"
android:textColor="#ffffffff"
android:textSize="12dip"
android:textStyle="bold" >
</TextView>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageButton
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/itemviewflipper2"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:background="@android:color/transparent"
android:contentDescription="@string/stritemviewflipper" />
<TextView
android:id="@+id/titreviewflipper2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/itemviewflipper2"
android:background="#AA000000"
android:paddingTop="10dip"
android:textColor="#ffffffff"
android:textStyle="bold" >
</TextView>
</RelativeLayout>
[...]
</ViewFlipper>
我在活動定義的OnTouchListener:
viewFlipper.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent touchevent) {
switch (touchevent.getAction()) {
case MotionEvent.ACTION_DOWN: {
oldTouchValue = touchevent.getX();
break;
}
case MotionEvent.ACTION_UP: {
float currentX = touchevent.getX();
if (touchevent.getY() < metrics.heightPixels/3) {
if (!viewFlipper.isPressed() && oldTouchValue == currentX) {
openDescriptionArticle(index);
} else {
if (oldTouchValue < currentX) {
viewFlipper.setInAnimation(AnimationHelper
.inFromLeftAnimation());
viewFlipper.setOutAnimation(AnimationHelper
.outToRightAnimation());
viewFlipper.showPrevious();
if (index > 0) {
index--;
} else {
index= 4;
}
}
if (oldTouchValue > currentX) {
viewFlipper.setInAnimation(AnimationHelper
.inFromRightAnimation());
viewFlipper.setOutAnimation(AnimationHelper
.outToLeftAnimation());
viewFlipper.showNext();
if (index < 4) {
index++;
} else {
index = 0;
}
}
}
}
break;
}
}
return false;
}
});
根據您在此處撰寫的內容,您要完成的內容目前尚不清楚。 – FoamyGuy
檢查答案的鏈接http://stackoverflow.com/a/11271615/582571 – rajpara
我檢查了鏈接,但我認爲它不能回答我的問題。事實上,我可以滾動我的listView並滑動我的ViewFlipper,但是當我滾動我的ListView時,ViewFlipper會顯示下一個或前一個項目以及ListView滾動。這兩個操作都可以工作,但我只想要其中的一個(當我滾動ViewFlipper的ListView OUT時,ViewFlipper不應該移動,並且當我滑動ViewFlipper時,ListView也不應該移動)。 – maxetx