2012-06-05 24 views
5

que tienen un diseño con un gráfico de la parte superior, un EditText en el medio y un botón a cierta distancia por debajo de ella, así:¿Cómo asegurarse de que la vista específica esté visible cuando aparece el teclado?

Example layout

Cuando el usuario está escribiendo en el EditText, quiero desplazar la disposición para que el botón "Ir" está todavía visible, incluso si esto significa recortar la imagen de la parte superior, así:

Wanted layout

que sé sobre windowSoftInputMode="adjustPan" de manifiesto, pero eso no significa wor k porque solo se desplaza lo suficiente para que EditText sea visible. ¿Hay alguna manera de asegurarse de que se mueva hasta que el botón esté visible también?


Para comentarios con K_Anas, este es mi diseño. Tiene todos los márgenes extra y el espacio eliminado en comparación con la primera captura de pantalla, para eliminar cualquier otra fuente de problemas.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <View 
     android:layout_width="300dp" 
     android:layout_height="150dp" 
     android:layout_alignParentTop="true" 
     android:background="#999"/> 

    <EditText 
     android:layout_width="280dp" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:hint="Sample..."/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="Go"/> 

</RelativeLayout> 

Respuesta

2

Habló con los desarrolladores de Android para mantener conversaciones, y no parece que haya una manera fácil de resolver este problema. El consenso parece estar reelaborando el diseño en lugar de tener una API para solucionar el problema.

0

estoy seguro de que no es la mejor manera, pero no podía que acaba de cambiar los atributos de diseño para su botón (añadir/cambiar un margen) y volver a dibujar cuando se hace clic en el EditarTexto? Use un onClickListener &, tal vez invalide su botón.

+1

Lol, eso es muy hacky, pero podría funcionar. Sin embargo, antes de intentar algo como esto, envolvería todo en un ScrollView y trataría de trabajar con 'adjustResize'; eso también sería un dolor, pero probablemente sería más fácil. –

+0

(La razón por la que sería molesto es que 'alignParentBottom' carece de sentido en ScrollView, por lo que tendré que volver a trabajar todo el diseño para mantener una vista de pie de página (no en las maquetas anteriores) siempre en la parte inferior de la pantalla. También tendría que encontrar la forma de asegurarme de que la vista se transfiere al punto correcto) –

1

hicieron que trató:

android:windowSoftInputMode="adjustResize" 

en su actividad Tag en Manifiesto

vea estas docs en el blog de desarrolladores Android

Probé su diseño con: android:windowSoftInputMode="stateVisible|adjustResize"

y dame estos resultados:

enter image description here enter image description here

+0

Eso es más de lo que es mi plan B. Por el momento eso no funcionaría, ya que todo está en RelativeLayout y no en ScrollView (yo uso 'alignParentTop' y' alignParentBottom' y cosas por el estilo que no funcionan en ScrollView), pero cambiaré a eso si Tengo que. –

+0

Hola Steve, ¿quieres que tu gráfico siempre aparezca o qué? porque probé su diseño con un texto de edición en el centro y el botón en la parte inferior de un diseño relativo y lo coloqué como imagen de 300x150 dpixdpi en la parte superior –

+0

¿El botón también está visible? Esa es la parte difícil. Hacer que EditText sea visible es fácil, usando la configuración "adjustPan". –

Cuestiones relacionadas