0 votos

Hola, tengo varios EditText y botones, que cuando pulso sobre uno de los EditText para escribir, el teclado aparece, pero aparece encima del fragment tapando parte del contenido.
 
Y tampoco el ScrollView que tengo puesto para que la pantalla se pueda mover verticalmente funciona.
 
Este es el XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragApuntes2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FAFAFA"
    android:fitsSystemWindows="true"
    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false"
    tools:context=".Apuntes_2">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FAFAFA"
        android:fillViewport="true"
        android:layout_gravity="bottom" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                .... />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
		    ......>

                <ImageButton
			..... />

                <EditText
                    android:id="@+id/txt_apuntes_2_nombre"
                    android:layout_width="200dp"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="5dp"
                    android:layout_marginEnd="5dp"
                    android:backgroundTint="@android:color/holo_red_dark"
                    android:ems="10"
                    android:gravity="start"
                    android:hint="@string/txt_Nombre"
                    android:inputType="text"
                    android:paddingStart="10dp"
                    android:paddingEnd="0dp"
                    android:importantForAutofill="no"/>

                <ImageButton
			..... />

                <ImageButton
			..... />

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <EditText
                    android:id="@+id/txt_apunte_2_contenido"
                    android:layout_width="match_parent"
                    android:layout_height="200dp"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:layout_marginBottom="11dp"
                    android:background="#1634F7"
                    android:ems="10"
                    android:gravity="top"
                    android:importantForAutofill="no"
                    android:inputType="textAutoCorrect|textCapSentences|textMultiLine"
                    android:minLines="7"
                    android:scrollbarStyle="insideInset"
                    android:scrollbars="vertical"
                    android:overScrollMode="always"
                    android:scrollHorizontally="false"
                    android:textColor="#FFFFFF"/>

            </LinearLayout>

        </LinearLayout>

    </ScrollView>

</RelativeLayout>

Y en androidmanifest.xml

<activity android:name="MyActivity"
    ...
    android:windowSoftInputMode="adjustPan|adjustResize"
    ...
  </activity>

Que hay que configurar para que se desplaza la pantalla hacia arriba al aparecer el teclado, y también se pueda desplazar el ScrollView

 

He probado con otras opciones en android:windowSoftInputMode si dejo solo "adjustResize" no se desplaza la pantalla hacia arriba, pero si funciona el ScrollView, porria valer, pero el problema que hay, es que se queda ese fondo que comento en el otro post, cuando desaparece el teclado

si pongo "adjustPan" entonces no se queda ese fondo, pero no funciona el ScrollView

 

Que solución se puede aplicar ?

 

Gracias.

por en Android
editado por

1 Respuesta

0 votos

¿Has probado a dejar solo android:windowSoftInputMode="adjustPan" ?

Otra opción que puedes probar es añadir: android:fitsSystemWindows="true"

Puede ser un problema con el foco, tienes un ejemplo (invertido) en: https://xabaras.medium.com/android-edittext-avoid-showing-software-keyboard-on-focus-10ada7f69628

También se me ocurre que tengas que sacar y poner como primer nodo de XML el ScrollView (no dentro del RelativeLayout, pues creo que te puede estar ocasionando ese comportamiento).

por