EditText w Listview traci ostrość po naciśnięciu na Android 4.x.

Wiem, że jest tu wiele podobnych pytań, ale nie mogłem znaleźć żadnego z dostarczonych rozwiązań pracujących w prostej przykładowej aplikacji.

Problem występuje, gdyklawiatura programowa jest wyświetlany po raz pierwszy. Jak tylko zostanie wyświetlony, tylko przez naciśnięcieedytować tekst ponownie sprawia, że ​​można go edytować.

Próbowałem:

 android:windowSoftInputMode="adjustPan|adjustResize"

To nie rozwiązuje żadnych problemów. Wydaje się, że ta linia jest obowiązkowa, aby zmienić rozmiar działania po pojawieniu się klawiatury programowej. Niestety, także powodujeEditTexts stracić ostrość. To prawdopodobnie doListView sam nabiera ostrości po procesie zmiany rozmiaru. Spróbowałem więc następującego obejścia:

 listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);

To zawsze powoduje pierwszewidoczny EditText żeListView zawiera, aby uzyskać ostrość, co jest niepożądane. Drugi tekst EditText w drugim rzędzie powinien zamiast tego uzyskać ostrość po naciśnięciu, co nie ma miejsca. Ponadto, jeśli w końcu udało mi się skupić inny tekst EditText inny niż pierwszy pokazany (np. Przez naciśnięcie „Dalej” nasoftkeyboard), pierwszy widoczny będzie skupiony po odrzuceniu klawiatury i zmianie rozmiaru ListView na pełny rozmiar.

Próbowałem kilku innych rzeczy, takich jak przechwytywanieonFocusChange() zdarzenia dla ListView, wiedząc jednocześnie, który EditText został naciśnięty przez jegoTouchListener. Żądanie skupienia się na tym określonym EditText ponownie nie doprowadziło do żadnego sukcesu.

UżywaćScrollView zamiastListView jak sugerują inni użytkownicy, nie jest to opcja dla danego projektu.

questionAnswers(9)

yourAnswerToTheQuestion