EditText の行を含む ListView があります。
EditText をクリックし、まだフォーカスされていない場合、フォーカスを受け取り、キーボードが表示され、EditText が CandidateView の上に移動します (望ましい動作)。
ただし、キーを押すと、EditText はフォーカスを維持して入力を受け取りますが、下に移動し、キーボードによって隠されます (前の動きが逆になります)。
キーボードを表示せずに EditText が既に選択されているときに EditText をクリックすると、キーボードがポップアップしますが、EditText は正しい位置 (CandidateView の上) に移動しません。それはまだ入力を受け取ります。
EditText を含むヘッダー ビューを追加すると、すべてが正しく機能します。
これは、行ビューが作成される ArrayAdapter のコードです。
View view = inflater.inflate(R.layout.row_profile_entry_text, null);
final String question = getItem(position);
TextView textViewQuestion = (TextView) view.findViewById(R.id.rpeq_TextViewQuestion);
textViewQuestion.setText(question);
final EditText editTextAnswer = (EditText) view.findViewById(R.id.rpeq_EditTextAnswer);
editTextAnswer.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
mAnswers.put(question, s.toString());
}
});
if (mAnswers.containsKey(question)) {
editTextAnswer.setText(mAnswers.get(question));
}
return view;
また、他の質問に対するほとんどの回答が示唆するよう
android:windowSoftInputMode="adjustPan"
に、マニフェストとListViewに既に追加したことを強調したいと思います。
android:descendantFocusability="beforeDescendants"
EditTextadjustPan
がないと、フォーカスをまったく受け取ることができませんが、問題を完全に解決することはできません。
誰かが私が間違っていることを知っていますか?