El enfoque aleatoriamente salta al desplazarse

Tengo una actividad con muchos controles de EditText y casillas de verificación cerca de ellos. De forma predeterminada, la mayoría de EditTexts están deshabilitados.

Cuando abro la actividad, algún control aleatorio de EditText consigue el foco (un marco alrededor de él) y si usted golpea ligeramente en él, el teclado en pantalla aparece aunque el EditText esté inhabilitado y ningún texto aparece cuando usted presiona las llaves en pantalla.

Además, todo mi diseño está envuelto en un ScrollView . Cuando se desplaza, algunos aleatorios EditText s obtener el enfoque. Puede ser el más bajo visible, o el visible más alto, o a veces uno en el medio, a veces uno fuera del área visible.

Debido a que un elemento aleatorio del diseño obtiene el foco, la actividad se desplaza aleatoriamente hacia abajo cuando se abre, lo que es bastante molesto.

Supongo que es un error de Android, pero hay una solución?

Detener EditText de ganar foco en el inicio de actividad se encarga de la situación con sólo 1 EditText para el que se puede decir que perder el foco para que el elemento ficticio podría ganar. En mi caso el elemento ficticio no gana foco, tanto en onResume como onCreate, con ambos android:focusable="true" android:focusableInTouchMode="true"

¿Debo comprobar todos los controles de EditText (hay 12 de ellos) y les digo que pierdan el foco? Lo que con el desplazamiento, porque parece centrarse aleatoriamente salta.

2 Solutions collect form web for “El enfoque aleatoriamente salta al desplazarse”

No es el desplazamiento que enfoca al azar el EditText. Es cuando el scrollview maneja un evento de fling. Si sobrescribes el método fling, no habrá ningún cambio de enfoque aleatorio.

Entonces, si desea que la funcionalidad de fling de nuevo tendrá que escribir su propio método de fling. Hay código aquí puede copiar desde:

Desplazamiento suave en Android

Debido a la implementación del método fling en el ScrollView – es suficiente anular el findFocus() , de modo que devolverá this para evitar que el foco salte al desplazarse.

 @Override public View findFocus() { return this; } 
  • Comportamiento extraño con selectAllOnFocus cuando EditText está en ListView
  • EditText pierde foco cuando aparece el teclado; Requiere tocar dos veces para editar
  • EditText: Evita concentrarte en setText ()
  • No se puede administrar a requestFocus a Spinner
  • Mostrar el teclado automáticamente
  • Calcula cuánto tráfico de red generan otras aplicaciones de Android
  • Desplazamiento del foco de RecyclerView
  • Cómo hacer que EditText no se enfoque al crear la actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.