0

RelativeLayout を拡張する CustomView があります。次のレイアウト パラメータ フラグを指定して WindowManager.addView() メソッドを使用して画面に追加します。

final int flags =WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;

dispatchKeyEvent() は CustomView クラスでオーバーライドされますが、戻るボタンを押したときにウィンドウに追加した後、dispatchKeyEvent() が呼び出されません。

フラグから WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE を削除すると、dispatchKeyEvent() が呼び出されますが、customView 内でタッチ イベントを検出できません。

私のcustomViewがタッチイベントとキーイベントの両方を検出し、ビューの外側にも触れることができるフラグの組み合わせを親切に提案してください

これが重複している場合は、私を投稿に転用してください。

4

1 に答える 1

0

答えが見つかりました。フォーカスフラグを動的に追加するだけです。ビューが表示されたら、フォーカス フラグを追加します。非表示になったら、フラグを削除して、タッチ イベントを他のビューに送信します。

于 2013-07-18T05:41:33.493 に答える