El EditText de Android se oculta cuando se muestra el teclado virtual y está involucrado SurfaceView
Tengo una interfaz de usuario simple: un EditText debe estar situado debajo de un SurfaceView. Utilizo un RelativeLayout para organizar estas dos vistas.
Ahora, cuando toco el EditText para abrir el teclado virtual, el SurfaceView se desliza hacia arriba, pero el EditText está oculto y no muestra la cadena escrita.
- Antialiasing en TextureView
- (Android) ¿Cómo obtengo SmartPhone ScreenWidth y Height?
- La superficie de Android se bloquea cuando se va al fondo
- Android Advertencia: CHECK surface infomation creating = false
- Android: Recuperando el enfoque con SurfaceView
Para reproducir, utilice el siguiente código XML de presentación:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout01" android:layout_height="fill_parent" android:layout_width="fill_parent"> <SurfaceView android:id="@+id/SurfaceView01" android:layout_width="fill_parent" android:layout_height="wrap_content"> </SurfaceView> <EditText android:id="@+id/EditText01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true" android:selectAllOnFocus="true" android:textStyle="normal" android:singleLine="true"> </EditText> </RelativeLayout>
La clase de actividad principal solo necesita mostrar el diseño. Cuando inicie el programa y toque el EditText, aparece el teclado virtual pero el campo EditText se ha ido.
Tal vez el RelativeLayout está causando los problemas, pero no sé cómo reproducir el mismo diseño con otra clase de diseño.
Cualquier sugerencia es bienvenida, realmente aprecio su ayuda.
Gracias.
Editar:
Aquí hay dos capturas de pantalla, una que muestra el EditText en la parte inferior sin teclado virtual, uno con teclado virtual pero sin EditText. Es interesante notar que el SurfaceView y el EditText realmente se desplazan hacia arriba, el EditText simplemente desaparece. BTW esto también sucede a un botón si está al lado del EditText.
EditText debajo de un SurfaceView (izquierda); EditText se ha ido (derecha)
- Vista superficial + glsurfaceview + framelayout
- Cómo obtener un SurfaceHolder con una superficie válida (necesario por EGL.eglCreateWindowSurface)?
- ¿Es posible destruir SurfaceView manualmente?
- Juego de Android con superficial, lienzo - Dibujable o mapa de bits
- Cómo dibujar una superposición en un SurfaceView utilizado por la cámara en Android?
- Null Canvas en SurfaceView Thread, a pesar de detener Thread en surfaceDestroyed () - sólo en Android 4 / ICS
- Cómo limpiar el soporte de superficie cuando el reproductor de medios está terminado?
- ¿Cómo puedo establecer el tamaño de vista previa de la cámara a la relación de aspecto cuadrado en un SurfaceView cuadrado (como Instagram)
Como comentador en el hilo sobre este error sugerido, es muy fácil solucionar este problema estableciendo el color de fondo del SurfaceView
o GLSurfaceView
a transparente con mSurfaceView.setBackgroundColor(Color.TRANSPARENT);
así como.
Este problema se produjo para mí al presionar un EditText
en Honeycomb (v13) en un Samsung Galaxy Tab 10.1. El problema era que después de que el GLSurfaceView
fue redimensionado, en su lugar todavía era un rectángulo negro que cubría el EditText
. Esta solución funciona haciendo que el rectángulo erróneo transparente, por lo que el EditText
se puede ver.
Agregue el código de seguimiento para su actividad en AndroidManifest.xml android:windowSoftInputMode="adjustPan"
¡Si, es correcto! Agregue el código de seguimiento para su actividad en AndroidManifest.xml android:windowSoftInputMode="adjustPan"
Y en su texto de edición, simplemente añada:
android:imeOptions="flagNoFullscreen"
He encontrado que tiene diferentes resultados en diferentes dispositivos, entonces yo uso ScrollView como la vista de la raíz y poner el diseño en ScrollView, cuando el modo fullScreen uso funciona bien. Y asegúrese de establecer android: fillViewport = "true" si todavía tiene algún problema hágamelo saber [email protected]
- Android: WebView cargar imagen / contenido en el centro
- Kotlin – cuando la expresión con el tipo de retorno de la función