Tengo un <ScrollView>
diseño:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_scrollview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/input_one"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:inputType="number" >
<EditText
android:id="@+id/input_two"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:inputType="number" >
<EditText
android:id="@+id/input_three"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:inputType="number" >
<Button
android:id="@+id/ok_btn"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="@string/ok_str" />
</LinearLayout>
</ScrollView>
Como puede ver arriba, el diseño simple consta de tres campos de entrada y un botón "Aceptar".
Ejecuto mi aplicación con el diseño anterior, cuando toco el primer campo de entrada ( @+id/input_one
), el teclado virtual aparecerá en la parte inferior de la pantalla, oculta el tercer campo de entrada y el botón "Aceptar".
Desde que lo uso <ScrollView>
, pensé que podía desplazar la página hacia arriba para ver el tercer campo de entrada y el botón "Aceptar" que están ocultos por el teclado virtual, pero la página no se puede desplazar . ¿Por qué? Cómo deshacerse de él? Básicamente, me gustaría ver todos los campos de entrada y el botón "Aceptar", incluso el teclado en pantalla emergente.
Respuestas:
He arreglado el problema definiendo el atributo siguiente en
<activity>
de AndroidManifest.xmlfuente
Ok, he buscado varias horas para encontrar el problema y lo encontré.
Ninguno de los cambios me gustó
fillViewport="true"
niandroid:windowSoftInputMode="adjustResize"
me ayudó.Yo uso Android 4.4 y este es el gran error :
De alguna manera, los temas de pantalla completa evitan que ScrollViews se desplace cuando el SoftKeyboard está visible.
Por el momento, terminé usando esto en su lugar:
No sé cómo deshacerme de la barra superior del sistema con la pantalla de tiempo y batería, pero al menos tengo el problema.
Espero que esto ayude a otros que tienen el mismo problema.
EDITAR: Tengo una pequeña solución para mi caso, así que la publiqué aquí :
No estoy seguro de si esto funcionará para usted, pero definitivamente lo ayudará a comprender y aclarar algunas cosas.
EDIT2: Aquí hay otro buen tema que lo ayudará a ir en la dirección correcta o incluso a resolver su problema.
fuente
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
Para mí lo único que funciona es poner en la actividad en el manifiesto este atributo:
No mostrar el teclado al abrir la actividad y no superponer la parte inferior de la vista.
fuente
poner esto dentro de su manifiesto de esta manera en modo sin pantalla completa
en tu manifiesto
fuente
ScrollView
, sino unaRelativeLayout
que contiene unaLinearLayout
que luego contiene unaScrollView
En su propiedad
Manifest
definewindowSoftInputMode
:fuente
mira esto.
fuente
Esto solo funcionó para mí:
fuente
Además, si desea hacerlo mediante programación, simplemente agregue la siguiente línea al onCreate de la actividad.
fuente
Puede intentar usar el siguiente código para resolver su problema:
fuente
bueno, la respuesta más simple que probé es simplemente eliminar su código, lo que hace que la actividad pase a pantalla completa. Tenía un código como este que era responsable de hacer que mi actividad pasara a pantalla completa:
if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.KITKAT) {
Acabo de eliminar mi código y funciona completamente bien, aunque si desea lograr esto con la pantalla completa activada, tendrá que probar otros métodos
fuente