私は拡張可能なリストを保持するアプリケーションを設計してきました。すべてのリストの最後で、空のEditText
コメントを受け取る準備ができています。次の問題があります。をタッチすると、画面のサイズがわずかに変更され(レイアウトとリストEditText
の位置によっては、サイズ変更が常に行われるとは限らないため、問題ありません)、ソフトキーボードが表示されます。EditText
ただし、これらのイベント中に、EditText
フォーカスを失い、それを取り戻すことはありません。キーボードが使用可能であるにもかかわらず、フォーカスがない場合、キーボードからの入力がに到達しないため、これは非常に不便EditText
です。もう一度触れると、EditText
期待どおりに動作します。
それはさらに奇妙になります。キーボードが表示されたままの状態で、別のタッチを行うことができますEditText
。同じことが起こります。それは焦点を失います。ただし、最初のフォーカスの喪失を通過すると、EditText
フォーカスに関連する問題なしに、以前に触れたものの間を自由に移動できます。ソフトキーボードを非表示にした場合にのみ、「状態」が消え、EditText
編集する前にsを2回タップする必要があります。
これが私のコードからの抜粋です。まず、empty_comment.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/blank_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textCapSentences"
android:imeOptions="actionDone"
android:hint="@string/hint"
android:layout_marginLeft="30dip" >
</EditText>
</LinearLayout>
ここに、問題のレイアウトを使用するフラグメントからの抜粋があります。
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.comment_empty, null);
final EditText editText = (EditText) convertView.findViewById(R.id.blank_box);
editText.setOnEditorActionListener(new OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if(actionId == EditorInfo.IME_ACTION_DONE)
{
// Unrelated code
}
return true;
}
});
マニフェストファイルに特定の入力を指定していませんが、役立つと思われる場合は提供できます。
アップデート:
Activity
パンを調整するためにに線を追加するとandroid:windowSoftInputMode="adjustPan"
、問題は部分的に解決されます。これは、現在の予期しない動作を、EditText
ビューがソフトキーボードによって隠される可能性があるという問題に置き換えます。
現在のところ、理想的な解決策は見つかりませんでしたが、近づいています。受け入れられた回答のコメントを見てください、それらはあなたに役立つかもしれません!