J'ai essayé d'écrire un code qui est utilisé pour redimensionner les composants de l'interface utilisateur lorsque le clavier virtuel apparaît. Lorsque j'utilise AdjustResize, il redimensionne les composants de l'interface utilisateur et en même temps, AdjustPan m'a donné le même résultat. Je veux connaître la différence entre eux et quand utiliser chaque composant? Lequel (AdjustPan ou AdjustResize) est bon pour redimensionner l'interface utilisateur?
Voici mon xml:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical" >
<EditText
android:id="@+id/editText5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="45dp"
android:ems="10"
android:inputType="textPersonName" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
android:text="My Button" />
</LinearLayout>
</RelativeLayout>
</ScrollView>
et le fichier menifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.adjustscroll"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.adjustscroll.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan|adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
la source
AdjustResize = redimensionner le contenu de la page
AdjustPan = déplacer le contenu de la page sans redimensionner le contenu de la page
la source
J'étais aussi un peu confus entre AdjustResize et AdjustPan quand j'étais débutant. Les définitions données ci-dessus sont correctes.
AdjustResize: le contenu de l'activité principale est redimensionné pour faire de la place pour la saisie
logicielle, c'est-à-dire le clavier AdjustPan: au lieu de redimensionner le contenu global de la fenêtre, il ne fait que déplacer le contenu afin que l'utilisateur puisse toujours voir ce qu'il tape
AdjustNothing: comme son nom l'indique, rien n'est redimensionné ou panoramique. Le clavier est ouvert tel quel, qu'il cache le contenu ou non.
J'ai créé un exemple pour mieux comprendre
Voici mon fichier xml:
Voici la vue de conception de l' exemple xml AdjustResize ci-dessous: AdjustPan Exemple ci-dessous: AdjustNothing Exemple ci-dessous:
la source
Comme le dit doc , gardez également à l'esprit la combinaison de valeurs correcte:
la source
Vous pouvez utiliser
android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
dans AndroidManifest.xml pour votre activité actuelle et utiliserandroid:fitsSystemWindows="true"
dans les styles ou rootLayout.la source