android - studio - el diseño de la pantalla se mueve hacia arriba cuando se muestra el teclado
barra de desplazamiento en android (5)
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.
Digamos que tengo el siguiente diseño:
http://i47.tinypic.com/2vchnih.png
cuando hago clic en el texto de edición en la parte inferior obtengo 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 establecido esto en el archivo de manifiesto para esta actividad:
android:windowSoftInputMode="adjustPan"
Entonces, ¿hay alguna manera de evitar que mi diseño se mueva cuando se muestra el teclado? ¡¡¡¡Gracias!!!!
Intenta usar
android:windowSoftInputMode="adjustPan|adjustResize"
para la actividad.
Prueba esto:
android:windowSoftInputMode="adjustNothing"
Mi EditText siguió subiendo 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
Ya tenía un WindowsoftInputMode para evitar que se abriera el teclado, así que solo agregue el código de comentario
android: windowSoftInputMode = "stateHidden | adjustPan | adjustResize"