2015-03-19 60 views
0

我使用setOnTouchlistner類來檢測左右滑動。我可以讓它在listview上正常工作,但listview太小而不能每次都刷新一次。在屏幕上的任意位置滑動Android

然後我嘗試將刷卡設置爲主LinearLayout。在這裏面我有另外三個LinearLayout。但它不工作感謝任何幫助。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:baselineAligned="false" 
android:orientation="horizontal" 
android:id="@+id/driveView" 
android:focusableInTouchMode="true" 
android:focusable="true" 
android:clickable="true"> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

下面是代碼:

private LinearLayout myView = null; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.drive); 
myView = (LinearLayout)findViewById(R.id.driveView); 

myView.setOnTouchListener(new OnSwipeTouchListener(mContext) { 
     @Override 
     public void onSwipeLeft() { 
      showdrivedialog(mContext, "Drive List", "Change to Ascending list!"); 
     } 

     public void onSwipeRight() { 
       showdrivedialog(mContext, "Drive List", "Change to Descending list!"); 
     } 
    }); 
+0

如果此視圖具有觸摸監聽器的子視圖,則需要在它們上返回false,以便此視圖可以獲得觸摸 – Xjasz 2015-03-19 01:30:46

+0

其他視圖都不具有觸摸監聽器,我有onClickListner,onFocusChangeListner,onEditorActionListner和OnItemClickListner。謝謝。 – 2015-03-19 20:17:05

回答

0

兩個問題我想提一提。

1)我不知道OnSwipeTouchListener,但我有興趣。我懷疑android:clickable="true"應該是錯誤的,因爲滑動和點擊之間似乎存在衝突。

2)看看這個SO鏈接@How to handle right to left swipe gestures。我不知道你在哪裏得到OnSwipeTouchListener類,但你可以用274票複製它!

我個人並沒有使用這個類。我已經使用並擴展了Horizo​​ntalScrollView

+0

我嘗試將clickable設置爲false,但在另一個帖子中,有人通過將其設置爲true來使其工作。這是相同的OnSwipeTouchListener。 – 2015-03-19 20:08:30