2

ACTION_MOVEキーボードビューがあり、指がキーボードビューから出たときを追跡する必要があります。問題は、外に出ると正しい値の報告を停止し、指がキーボードビューの上にあるときにY最後の値を報告し続けることです。Y

デバッグのonTouchListenerために、単純なものを追加しただけなので、サービスの残りの部分がtouchイベントに干渉していないことがわかります。

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軸を検出できないのは、本当に気が遠くなるようなことです。

問題は次のようになります。

4

2 に答える 2

0

私はこの分野の専門家ではありませんが、ACTION_MOVE イベントが KeyboardView の境界外で発生したと言っていますか?

于 2013-02-17T13:45:16.577 に答える
0

画面全体にタッチする方法の 1 つは、コンテンツ全体を frameLayout でラップし、その onTouch() メソッドに対して false を返しながら、その上で setOnTouchListener を使用することです。

私はそれを行うための同様の代替方法について読んだことがあると確信していますが、それが何であったか思い出せません。おそらく、すでに自動的に持っているビューを使用します。おそらく findViewById( R.id.content) または getRootView() ですが、それらについてはわかりません。

于 2013-02-17T23:39:11.980 に答える