2010-05-26 60 views
1

我有一個自定義視圖,工作正常,我試圖讓手勢進入它。最常用的技術我看到的是添加XML,像這樣的(來自Android的文檔:如何以編程方式將Android手勢視圖添加到自定義視圖?

<android.gesture.GestureOverlayView 
    android:id="@+id/myGestures" 
    android:layout_width="fill_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1.0" 
    /> 

我的觀點是RelativeView內,當我試圖引用這個GetureOverlayView,我得到一個異常

。我也嘗試把現有的自定義視圖類中的連接,這樣的:

mGestures = new GestureOverlayView(context, attrs); 
mGestures.addOnGesturePerformedListener(this); 

但回調永遠不會調用

有人能指出我的錯誤,提出了一個更好的方法,可以讓我得到手勢回調和/或提出診斷方法?

+0

你能發佈異常堆棧跟蹤嗎?你可以使用'adb logcat'命令獲得它。另外請注意,以編程方式創建視圖時,您需要指定寬度和高度(請參閱'LayoutParams')。 – 2010-05-28 06:16:59

回答

2

問候, 我碰到你的問題就來了,因爲我在努力尋找解決同樣的問題:我有一個自定義視圖,儀表,這點我是無法得到的姿態去努力(直到我發現你的問題) 。

我能夠解決這個問題,所以這個反應。

我發現我的視圖返回了點擊事件,但操作始終爲0,對於ACTION_DOWN ...而在其他佈局上,在手勢正在工作的情況下,我會針對任何單個手勢獲取各種操作。

我繼續,並採取了失敗的linearlayout,並使用上面的代碼將它包含在gestureOverlayView之內。有一個區別是我將整個線性佈局放在gestureoverlay之內。上面的示例將gestureoverlay顯示爲一個沒有任何內容的獨立實體,這可能是您遇到問題的原因。

要使用它,我只要註冊我的手勢聽衆對OverlayView的如下:

((GestureOverlayView) findViewById(R.id.myGestures)).setOnTouchListener(gestureListener); 

我的快速反應表示歉意,但我至少希望我能擺脫你的問題的一些光,或者幫助其他任何碰到這種怪癖的人,因爲他們正在用手勢進行工作。

BH

相關問題