2015-05-18 94 views
1

我有一個包含一些可點擊的元素(ToggleButtons和一個GridView)的視圖的片段。在擴展片段的類中使用onInterceptTouchEvent

我在視圖上設置了一個onTouchListener,我用它來檢測簡單的滑動手勢,只要不在任何可點擊的項目上開始滑動,這項工作就非常好。無論從哪裏開始,我都希望輕掃工作。

據我所知,ToggleButtons和GridView可能消耗觸摸事件,並且在擴展ViewGroup的類中,我可以在Activity的子類中覆蓋onInterceptTouchEvent或dispatchTouchEvent。

如何在擴展Fragment時處理這種情況?

最近我在這裏找到的是:Android adding onInterceptTouchEvent to a fragment很抱歉,這個問題沒有回覆。

感謝您的期待。

+0

'onInterceptTouchEvent'是'ViewGroup',不'Activity' – pskink

+0

是的,感謝的方法。我指的是有關Activity的dispatchTouchEvent。 – rawiniasDaddy

+0

所以你應該重寫'ViewGroup#onInterceptTouchEvent' – pskink

回答

1

好的,最後到了那裏。

我創建了一個的子類,它是我的佈局的根,然後在此範圍內,我覆蓋

public class RootLayout extends RelativeLayout { 

    public RootLayout(Context context) { 
     super(context); 
    } 

    public RootLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public RootLayout(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 


    @Override 
    public boolean onInterceptTouchEvent(MotionEvent ev){ 
     return true; 
    } 
} 

然後將我的xml中的RelativeLayout替換爲新的子類。

<com.walker.leigh.dipswitch2.RootLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/root_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

感謝您的幫助:)

+0

不完整的解決方案 – Webserveis

相關問題