2010-06-04 17 views
10

Tengo una interfaz de usuario simple: un EditText debe estar ubicado debajo de un SurfaceView. Uso un RelativeLayout para organizar estas dos vistas.EditText de Android está oculto cuando se muestra el teclado virtual y se trata de un SurfaceView

Ahora, cuando pulso sobre EditText para abrir el teclado virtual, SurfaceView se desliza pero EditText está oculto y no muestra la cadena de caracteres.

de reproducir, utilizar el siguiente código de diseño XML:

<?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 principal actividad sólo tiene que mostrar el diseño. Cuando inicio el programa y presiono EditText, aparece el teclado virtual pero el campo EditText se ha ido.

Quizás 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 agradezco su ayuda.

Gracias.

Editar:

Estas son dos imágenes, una que muestran la EditarTexto en la parte inferior y sin teclado virtual, uno con teclado virtual, pero sin EditarTexto. Es interesante observar que SurfaceView y EditText cambian hacia arriba, EditText simplemente desaparece. Por cierto, esto también le sucede a un botón si está al lado de EditText.

EditText below a SurfaceView (left); EditText is gone (right)

+0

Puede considerar adjuntar un par de capturas de pantalla, una con el teclado oculto oculto (es decir, "normal") y uno después de tocar el 'EditText' para que aparezca el teclado. Puedes usar DDMS para hacer las capturas de pantalla. – CommonsWare

+1

Este error ha sido reportado: http://code.google.com/p/android/issues/detail?id = 11676 – Jan

Respuesta

8

Como comentarista en el thread about this bug sugirió, es muy fácil de solucionar este problema estableciendo el color de fondo de la SurfaceView o GLSurfaceView a transparente con mSurfaceView.setBackgroundColor(Color.TRANSPARENT); también.

Este problema se me ha ocurrido al presionar un EditText en Honeycomb (v13) en un Samsung Galaxy Tab 10.1. El problema era que después de cambiar el tamaño del GLSurfaceView, en su lugar seguía habiendo un rectángulo negro que cubría el EditText. Esta solución funciona haciendo que el rectángulo erróneo sea transparente, por lo que se puede ver el EditText.

+2

Muchas gracias, ¡desearía poder +100! –

1

Añadir el código de seguimiento para su actividad en su AndroidManifest.xml android:windowSoftInputMode="adjustPan"

0

Sí, es cierto! Añadir el código de seguimiento para su actividad en su AndroidManifest.xml android:windowSoftInputMode="adjustPan"

Y en su edición de texto, sólo tiene que añadir:

android:imeOptions="flagNoFullscreen" 
0

i encontró que tiene resultado diferente en diferentes dispositivos, entonces yo uso como ScrollView la vista raíz y coloque el diseño en ScrollView, cuando use el modo pantalla completa, funciona bien. y asegúrese de configurar android: fillViewport = "true" si todavía tiene algún problema, hágamelo saber [email protected]

Cuestiones relacionadas