2

私のアプリには、次のように、さまざまな EditTexts を持つ ListView を含む Fragment を含む Activity があります。

アクティビティ -> フラグメント -> ListView -> EditTexts

EditText がタップされると、ソフト キーボードが表示され、次の 2 つのいずれかが発生します。

  • アクティビティがまだフォーカスを失っていない場合 (たとえば、Android のホーム画面にアクセスするなど)、アクティビティ全体がわずかにスライドして、EditText がキーボードで隠れないようにします。

  • ある時点でアクティビティがフォーカスを失った場合 (Android のホーム画面にアクセスするなど)、ListView はキーボードの上で EditText をスクロールします (アクティビティは静止したままです) が、EditText はフォーカスを失います!

これらの結果はどちらも理想的ではありません。理想的には、EditText がフォーカスを失うことなく、ListView がキーボードの上で EditText をスクロールするように常にしたいと考えています。誰かが私を正しい方向に向けたり、現在同じアクションに対して2つの異なる動作が見られる理由を説明したりできますか?

編集: 参考までに、私は Android 4.2 用に構築し、Nexus 7 タブレットでテストしています。

4

2 に答える 2

1

問題は、ListView の行で EditText を使用すると、キーボードのスペースを確保するために ListView が再描画される可能性があることです。また、ListView が再描画されると、システムはカーソルが以前にあった場所を覚えていません。

ListView の代わりに ScrollView 内で LinearLayout を使用する場合、同じ問題は発生しないようです。ばかげているように聞こえますが、機能します。

于 2013-01-12T14:55:57.320 に答える