EditText in Listview perde o foco quando pressionado no Android 4.x
Eu sei que há muitas perguntas semelhantes aqui, mas não consegui usar nenhuma das soluções fornecidas em um aplicativo de amostra simples.
O problema ocorre quando osoftkeyboard é mostrado pela primeira vez. Assim que é mostrado, apenas pressionando o botãoeditar texto novamente torna editável.
Tentei o seguinte:
android:windowSoftInputMode="adjustPan|adjustResize"
Isso não está resolvendo nenhum problema. Parece que esta linha é obrigatória para que a atividade seja redimensionada após o surgimento do softkey. Infelizmente, isso também está causandoEditTexts para perder o foco. Isto é provavelmente para oExibição de lista se ganhando foco após o processo de redimensionamento. Então eu tentei a seguinte solução alternativa:
listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
Isso sempre faz com que o primeiroEditText visível que oListView
contém para ganhar foco, o que é indesejável. O segundo EditText na segunda linha deve ganhar foco quando pressionado, o que não está acontecendo. Além disso, se eu finalmente consegui focar outro EditText outro, então o primeiro mostrado (por exemplo, pressionando 'Next' nosoftkeyboard
), o primeiro visível receberá o foco após o teclado ser dispensado e o ListView sendo redimensionado para o tamanho real novamente.
Eu tentei várias outras coisas como interceptaronFocusChange()
eventos para o ListView, ao saber qual EditText foi pressionado por seuTouchListener
. Solicitar o foco para esse determinado EditText novamente não levou a nenhum sucesso também.
Usando umScrollView
em vez de umListView
como sugerido por outros usuários não é uma opção para o projeto em questão.