ScrollView ウィジェット内に 2 つの EditText ウィジェットがあります。全体的な構造は次のとおりです。
- LinearLayout
- ScrollView
- 相対レイアウト
- 編集テキスト
- 編集テキスト
- 相対レイアウト
- ScrollView
OnFocusChangeListener
両方の EditText コンポーネントを使用しています。このコンポーネントにフォーカスがある場合は、別のコンポーネントからフォーカスを削除し、このコンポーネントのフォーカスをリクエストします。
問題は、最初の EditText でテキストの書き込みを開始してから、Return キーを押すか、別の EditText に触れると、フォーカスが最初の EditText に戻ってそこに続くことです。これは 1 回だけ発生し、アクティビティが更新されるまで二度と発生しません。
PS これは、フォーカスが最初の EditText から 2 番目に変更された場合にのみ発生しますが、2 番目から最初に移動すると正常に動作します
この小さなバグを取り除くためにできること
何が問題だったのかがわかったと思います。onKeyboardOut リスナーもありました。ここでは、キーボードが飛び出す前に最初にフォーカスを削除し、後で元に戻します。これにより、このような奇妙な問題が発生します