我有一個鍵盤視圖,當手指離開鍵盤視圖時我需要跟蹤ACTION_MOVE
。問題是,一旦它出去,它會停止報告正確的Y
值,並在手指位於鍵盤視圖上時持續報告最後的Y
值。ACTION_MOVE不報告正確的Y值
對於調試,我只添加了一個簡單的onTouchListener
,所以我知道服務的其餘部分不會以任何方式干擾觸摸事件。
setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.v("YBugDebug", "getRawY() = "+ event.getRawY()+"");
return true;
}
});
我一直在調試這幾天,並找不到原因。有什麼建議麼?我嘗試了getY()
getRawY()
,將偵聽器附加到根視圖。
奇怪的是,Y
值在Gingerbread中以及我的ICS設備處於橫向時正確報告。如下所述,該視圖似乎沒有響應懸停事件。
我嘗試將onTouch
添加到根視圖,但結果完全相同。真是令人難以置信的是爲什麼它可以檢測到一個移動,但不是它的正確的Y
軸。
這裏的問題是怎麼看:
http://oi48.tinypic.com/ehnfqp.jpg
確實。觸摸事件始於視圖的邊界,當然,然後我將手指移出邊界。這是默認行爲嗎?我嘗試了一個簡單的項目,在其中添加了一個TextView,並報告了正確的Y值,與我的文件夾的位置無關。 – Radovan 2013-02-17 13:58:46
看看你是否可以通過[ACTION_HOVER_EXIT](http://developer.android.com/reference/android/inputmethodservice/KeyboardView.html#onHoverEvent(android.view.MotionEvent))檢測到手指超出界限,此時你基本上可以忽略你所得到的價值。 – JanithaR 2013-02-17 14:10:03
我重寫了onHoverEvent方法來輸出一個消息,只要它的調用,但它似乎永遠不會調用該方法。 – Radovan 2013-02-17 14:26:52