2012-07-10 12 views
17

Let decir que tengo la siguiente distribución:diseño de la pantalla se mueve hacia arriba cuando se visualiza el teclado

http://i47.tinypic.com/2vchnih.png

cuando hago clic en la edición de texto en la parte inferior me sale esto:

http://i45.tinypic.com/352lym9.png

Como puede observar, la imagen de la parte superior va hacia arriba y todo el diseño se mueve. Este es mi xml para este diseño:

<?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" 
    android:background="#FFFFFF" > 

    <LinearLayout 
     android:id="@+id/header" 
     android:layout_width="fill_parent" 
     android:layout_height="75dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true"   
     android:isScrollContainer="true" 
     android:background="@drawable/header" > 
    </LinearLayout> 

    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/scrollauthentication" 
     android:layout_below="@+id/header" 
     android:background="#FFFFFF" 
     android:fillViewport="true" > 

     <RelativeLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="#FFFFFF" 
      android:id="@+id/authenticationrelativelayout"> 

      <TextView 
       android:id="@+id/login" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_below="@+id/header" 
       android:layout_marginLeft="30dp" 
       android:layout_marginTop="20dp" 
       android:text="login" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/lighter_orange" 
       android:textSize="28dp" /> 

      <TextView 
       android:id="@+id/usernameTextView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@+id/login" 
       android:layout_below="@+id/login" 
       android:layout_marginTop="16dp" 
       android:text="username" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/dark_gray" /> 

      <EditText 
       android:id="@+id/user" 
       android:layout_width="260dp" 
       android:layout_height="42dp" 
       android:layout_alignLeft="@+id/usernameTextView" 
       android:layout_below="@+id/usernameTextView" 
       android:background="@drawable/edittext_selector" 
       android:imeOptions="actionDone" 
       android:lines="1" 
       android:paddingLeft="10dp" /> 

      <TextView 
       android:id="@+id/passwordTextView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@+id/user" 
       android:layout_below="@+id/user" 
       android:text="password" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/dark_gray" /> 

      <EditText 
       android:id="@+id/password" 
       android:layout_width="260dp" 
       android:layout_height="42dp" 
       android:layout_alignLeft="@+id/passwordTextView" 
       android:layout_below="@+id/passwordTextView" 
       android:background="@drawable/edittext_selector" 
       android:imeOptions="actionDone" 
       android:inputType="textPassword" 
       android:lines="1" 
       android:paddingLeft="10dp" > 

       <requestFocus /> 
      </EditText> 

      <CheckBox 
       android:id="@+id/remembercheckBox" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@+id/password" 
       android:layout_below="@+id/password" 
       android:layout_marginTop="37dp" 
       android:button="@drawable/checkbox_selector" 
       android:focusable="true" /> 

      <TextView 
       android:id="@+id/rememberText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBaseline="@+id/remembercheckBox" 
       android:layout_alignBottom="@+id/remembercheckBox" 
       android:layout_toRightOf="@+id/remembercheckBox" 
       android:text="Remember me" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@color/dark_gray" /> 
     </RelativeLayout> 
    </ScrollView> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="30dp" 
     android:layout_below="@+id/scrollauthentication" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/loginButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@color/button_selected" 
      android:text="log in" 
      android:textColor="@drawable/textblack_selected" 
      android:textStyle="bold" > 
     </Button> 

     <Button 
      android:id="@+id/forgotten" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:background="@color/button_selected" 
      android:text="forgotten password" 
      android:textColor="@drawable/textblack_selected" 
      android:textStyle="bold" /> 
    </LinearLayout> 

</RelativeLayout> 

Y también he puesto esto en el archivo de manifiesto para esta actividad:

android:windowSoftInputMode="adjustPan" 

Entonces, ¿hay una manera de detener mi diseño se mueva cuando el teclado ¿se visualiza? ¡¡¡Gracias !!!!

+0

Comprobar este enlace: http://stackoverflow.com/questions/9989130/page-scroll-when-soft-keyboard-poped-up –

+0

Creo que este enlace te ayudará. [Link] [1] [1]: http://stackoverflow.com/questions/5516216/how-to-avoid-soft-keyboard-pushing-up-my-layout Gracias ... – user4232

+0

@YogeshSomani no hay nada allí que no haya intentado. y no está funcionando bien – adrian

Respuesta

10

Bueno, no he mencionado ningún "windowSoftInputMode" en el manifiesto de mi aplicación y funciona bien. La pantalla no se mueve hacia arriba cuando se abre el teclado. Pruebe este enfoque: simplemente elimine el parámetro "windowSoftInputMode" de su manifiesto.

26

Intente utilizar

android:windowSoftInputMode="adjustPan|adjustResize" 

para la actividad.

+0

Lo intenté.no hace ninguna diferencia – adrian

+0

¿Puede mostrar su código de archivo manifiesto? – SALMAN

+5

intente esto para su ScrollView android: isScrollContainer = "false" Esto puede ayudarlo. – SALMAN

1

Prueba esto:

android:windowSoftInputMode="adjustNothing" 
+1

Si bien este fragmento de código es bienvenido, y puede proporcionar cierta ayuda, sería [mejorado en gran medida si incluyera una explicación] (// meta.stackexchange.com/q/114762) de * cómo * y * por qué * esto resuelve el problema. Recuerde que está respondiendo la pregunta para los lectores en el futuro, ¡no solo para la persona que pregunta ahora! Por favor [edite] su respuesta para agregar una explicación y dar una indicación de qué limitaciones y suposiciones se aplican. –

2

Mi EditarTexto siguió moviéndose arriba también.

Agregar gravedad a Editar texto parece resolver el problema. El teclado estaba presionando mi EditText, así que agregué la gravedad al final del Edit Text en el XML.

android:gravity=bottom 
0

ya tenía un windowsoftInputMode para evitar que el teclado de la apertura, por lo que sólo tiene que añadir el código de comentario

androide: windowSoftInputMode = "stateHidden | adjustPan | adjustResize"

Cuestiones relacionadas