android - samsung - teclado para celular
Desplazamiento de la página cuando aparece el teclado suave (10)
Agregue la siguiente línea de código en el archivo de manifiesto de Android bajo la etiqueta de actividad
android:windowSoftInputMode="adjustResize"
Tengo un diseño <ScrollView>
:
<?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 en el primer campo de entrada ( @+id/input_one
), el teclado @+id/input_one
aparecerá en la parte inferior de la pantalla, oculta el tercer campo de entrada y el botón "Aceptar" .
Como uso <ScrollView>
, pensé que puedo 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 "Ok", incluso el teclado virtual que aparece.
Esta funcionando:
android:windowSoftInputMode="stateVisible|adjustPan"
<activity
android:name=".DonateNow"
android:label="@string/title_activity_donate_now"
android:screenOrientation="portrait"
android:theme="@style/AppTheme"
android:windowSoftInputMode="stateVisible|adjustPan">
</activity>
Esto solo funcionó para mí:
android:windowSoftInputMode="adjustPan"
Ok, he buscado varias horas para encontrar el problema, y lo encontré.
Ninguno de los cambios como fillViewport="true"
o android:windowSoftInputMode="adjustResize"
me ayudó.
Uso Android 4.4 y este es el gran error :
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
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:
android:theme="@android:style/Theme.Black.NoTitleBar
No sé cómo deshacerme de la barra superior del sistema con el tiempo y la pantalla de la batería, pero al menos tengo el problema.
Espero que esto ayude a otros que tienen el mismo problema.
EDIT: obtuve una pequeña solución para mi caso, así que la publiqué here :
No estoy seguro de si esto funcionará para usted, pero definitivamente lo ayudará a comprenderlo y aclarará algunas cosas.
EDIT2: Here hay otro buen tema que te ayudará a ir en la dirección correcta o incluso a resolver tu problema.
Para mí lo único que funciona es poner en la actividad en el manifiesto este atributo:
android:windowSoftInputMode="stateHidden|adjustPan"
Para no mostrar el teclado al abrir la actividad y no superponerse en la parte inferior de la vista.
Solucioné mi problema definiendo el siguiente atributo en <activity>
de AndroidManifest.xml
android:windowSoftInputMode="stateVisible|adjustResize"
en su Manifest
defina la propiedad windowSoftInputMode
<activity android:name=".MyActivity" android:windowSoftInputMode="adjustNothing">
mira esto.
<activity android:name=".Calculator" android:windowSoftInputMode="stateHidden|adjustResize" android:theme="@android:style/Theme.Black.NoTitleBar"></activity>
pon esto dentro de tu Manifiesto así en Sin modo de pantalla completa
android:windowSoftInputMode="stateVisible|adjustPan"
en tu manifiesto
<activity
android:windowSoftInputMode="stateVisible|adjustPan"
android:name="com.example.patronusgps.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".DonateNow"
android:label="@string/title_activity_donate_now"
android:screenOrientation="portrait"
android:theme="@style/AppTheme"
android:windowSoftInputMode="stateVisible|adjustPan">
</activity>