Réponses:
Demandez-vous comment contrôler ce qui est visible lorsque le clavier virtuel s'ouvre? Vous voudrez peut-être jouer avec le windowSoftInputMode . Consultez la documentation du développeur pour plus de détails.
android:fitsSystemWindows="true"
à votre vue racine pour résoudre ce problème.
J'ai eu les mêmes problèmes. Essayez le code suivant:
android:windowSoftInputMode="adjustPan"
ajoutez-le à votre manifest.xml dans la balise d'activité de l'activité qui contient l'entrée. exemple:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
adjustResize
ferait, mais cela couvre également mes champs de saisie
J'ai eu le même problème où le clavier logiciel était au-dessus des vues EditText qui étaient placées en bas de l'écran. J'ai pu trouver une solution en ajoutant une seule ligne à l'activité pertinente de mon fichier AndroidManifest.xml.
android:windowSoftInputMode="adjustResize|stateHidden"
Voici à quoi ressemble l'ensemble de la balise d'activité:
<activity
android:name="com.my.MainActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_main"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
Ici, la valeur la plus importante est la valeur AdjustResize. Cela déplacera toute l'interface utilisateur vers le haut pour laisser de la place au clavier logiciel.
adjustResize|stateHidden
et cela ne faisait aucune différence adjustPan
.
Pourquoi ne pas essayer d'ajouter un ScrollView pour envelopper tout ce que vous voulez faire défiler. Voici comment je l'ai fait, où je laisse en fait un en-tête en haut qui ne défile pas, tandis que les widgets de la boîte de dialogue (en particulier les EditTexts) défilent lorsque vous ouvrez le clavier logiciel.
<LinearLayout android:id="@+id/HeaderLayout" >
<!-- Here add a header or whatever will not be scrolled. -->
</LinearLayout>
<ScrollView android:id="@+id/MainForm" >
<!-- Here add your edittexts or whatever will scroll. -->
</ScrollView>
J'aurais généralement un LinearLayout à l'intérieur du ScrollView, mais cela dépend de vous. De plus, définir le style de la barre de défilement sur OutsideInset aide, du moins sur mes appareils.
Tout ce que tu as à faire c'est
android:isScrollContainer="true"
source: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/
Désolé d'avoir relancé un ancien fil, mais personne n'a mentionné le paramètre android:imeOptions="flagNoFullscreen"
dans votre élément EditText
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
fonctionne pour Android EditText, alors qu'il ne fonctionne pas pour webview ou xwalkview. Lorsque le clavier virtuel masque l'entrée dans Webview ou xwalkview que vous avez utiliséandroid:windowSoftInputMode="adjustResize"
Je crois que vous pouvez le faire défiler en utilisant la boule de commande, ce qui pourrait être réalisé par programmation par le biais de méthodes de sélection éventuellement, mais ce n'est qu'une idée. Je sais que la méthode trackball fonctionne généralement, mais quant à la façon exacte de le faire et de la faire fonctionner à partir du code, je ne suis pas sûr.
J'espère que cela pourra aider.
ajoutez cette seule ligne à votre activité relative où la couverture du clavier modifie la méthode d'activité text.inside onCreat ().
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Si le champ EditText est couvert par le KeyBoard, utilisez le code suivant:
EditText= findViewById(R.id.edittext)
EditText?.getParent()?.requestChildFocus(EditText,EditText)
Si vous souhaitez que le curseur se trouve dans le Focused EditText, utilisez-le EditText.requestFocus()
après le, EditText?.getParent()?.requestChildFocus(EditText,EditText)
ce qui permet d'obtenir le focus et le curseur dans le Focused EditText.
Modifiez votre AndroidManifest.xml
android:windowSoftInputMode="adjustResize"
Ajoutez ceci à votre vue racine du fichier de mise en page.
android:fitsSystemWindows="true"
C'est tout.