2

状況: 場所を入力するための HTML 入力フィールドを含む Web ビューがあり、その下に候補を表示するための Web ビューがあります。その入力フィールドには、keyup ハンドラーと onchange ハンドラーがあります。キーアップ時に、API を呼び出して提案 WebView を設定するメッセージが送信されます。

問題: 1 文字入力した後、入力フィールドがフォーカスを失います。Android 2.3 では、キーボードは起動したままですが、入力を続けても何も起こりません。Android 4.1 では、onchange ハンドラーがトリガーされ (ユーザーが提案を選択するのではなく、入力した内容を送信するために Enter キーを押したかのように)、キーボードと Web ビューが削除されます。

私が考慮したこと: 外部の loadURL 呼び出し (「javascript: var...」など) がこれを引き起こす可能性があり、他のビューで「requestFocus」または「bringToFront」を呼び出すこともこれを引き起こす可能性があります。ビュー ツリー リスナーにイベント ハンドラーを設定すると、問題が解決する場合があります。

残念ながら、私が知る限り、URL の変更は行われておらず、他のビューがフォーカスを要求したり前面に表示されたりしているようには見えません。ビュー ツリー リスナーにハンドラーを配置しても役に立ちませんでした。入力フィールドがフォーカスを失った後にトリガーされました。

このフォーカス変更の原因を見つけようとするアイデアがありません。

これをさらに調査し、この問題を解決するにはどうすればよいですか?

4

1 に答える 1