Existe-t-il un moyen de faire défiler l'écran pour permettre la visualisation du champ de texte?
Demandez-vous comment contrôler ce qui est visible lorsque le clavier logiciel s'ouvre? Vous voudrez peut-être jouer avec windowSoftInputMode . Voir documentation développeur pour plus de discussion.
J'ai eu les mêmes problèmes. Essayez le code suivant:
Android:windowSoftInputMode="adjustPan"
ajoutez-le à votre fichier manifest.xml dans la balise d'activité de l'activité qui contient l'entrée. Exemple:
<activity
Android:name=".Activities.InputsActivity"
...
Android:windowSoftInputMode="adjustPan"
/>
J'ai eu le même problème où le clavier logiciel était au-dessus des vues EditText qui ont été 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 toute 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 le paramètre adjustResize. Cela modifiera toute l'interface utilisateur pour laisser la place au clavier logiciel.
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 qui ne défile pas, tandis que les widgets de dialogue (en particulier les EditTexts) défilent lorsque vous ouvrez le clavier virtuel.
<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 de ScrollView, mais cela dépend de vous. En outre, la définition du style de barre de défilement sur outsideInset aide, du moins sur mes appareils.
Tout ce que vous devez faire c'est
Android:isScrollContainer="true"
source: http://www.davidwparker.com/2011/08/25/Android-fixing-window-resize-and-scrolling/
Désolé de faire revivre un ancien thread, 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 que cela ne fonctionne pas pour webview ou xwalkview. Lorsque le clavier logiciel masque la saisie dans webview ou xwalkview, vous devez utiliser Android:windowSoftInputMode="adjustResize"
Je pense que vous pouvez le faire défiler à l’aide de la boule de commande, ce qui pourrait éventuellement être réalisé par le biais de méthodes de sélection, mais c’est juste une idée. Je sais que la méthode du trackball fonctionne généralement, mais quant à la manière exacte de le faire et de le faire fonctionner à partir de code, je ne suis pas sûr.
J'espère que cela pourra aider.
ajoutez cette ligne à votre activité relative où la couverture du clavier a modifié la méthode d’activité text.inside onCreat ().
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Je sais que c'est vieux, mais aucune des solutions ci-dessus n'a fonctionné pour moi. Après un débogage approfondi, j'ai résolu le problème. La solution consiste à définir l'attribut Android:windowTranslucentStatus
sur false dans my styles.xml.