Est-il possible dans android pour obtenir la hauteur du clavier virtuel de l'appareil
est-il de toute façon android pour obtenir la hauteur du clavier virtuel de l'appareil android au moment de l'exécution. En fait, je veux montrer la zone de texte au-dessus du clavier.
- question similaire, here 🙂
- mais, il a été demandé il y a 2 ans. Peut-être il y a une solution maintenant.
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez, avec l'aide de Viewtree Observateur et de la mise en page globale à l'écoute, juste essayer étapes mentionnées ci-dessous
maintenant, chaque fois que clavier virtuel est affiché android sera de nouveau de la taille de votre écran et vous recevrez appel à votre écoute. C'est elle seule chose que vous devez faire est de calculer la différence entre la hauteur de laquelle votre vue de la racine de a, après re-taille et taille d'origine. Si la différence est de plus de 150 considérer cela comme un clavier a été gonflé.
Ci-dessous est un exemple de code
Ce qui concerne,
Techfist
120dp
et qui fonctionne bien pour la Nexus 7 (xhdpi) et Nexus 5 (xxhdpi). Votre expérience peut varier, mais...android:windowSoftInputMode="adjustResize"
devrait être mis dans la AndroidMainfest l'Activité de l'attribution de l'endroit où votre clavier souple a été utilisé.Pour résoudre cela, j'ai écrit un keyboardHeightProvider qui peut calculer la hauteur d'un flottant clavier souple. L'Activité peut être définie à adjustNone ou adjustPan dans le AndroidManifest.xml.
https://github.com/siebeprojects/samples-keyboardheight
Siebe
J'ai essayé beaucoup de méthodes suggérées pour cela, mais rien ne semblait fonctionner pour Android SDL. Je pense que c'est soit parce que la SDL affichage "plein écran" ou qu'il se trouve dans un "AbsoluteLayout" et, par conséquent, la hauteur de la "Vue" jamais fait de changements. Cette méthode a fonctionné pour moi:
Obtenir les dimensions du clavier
placer la zone de texte en tant que parent bas.
et dans le fichier de manifeste de rendre le soft d'entrée
adjustresize
puis la zone de texte déplacer vers le haut lorsque le clavier apparaît.
Vous ne pouvez pas dire. Non, vraiment: vous ne pouvez tout simplement pas le dire.
Le clavier n'a pas besoin d'être une forme particulière. Il n'a pas à être placé au bas de l'écran (de nombreux de la les plus populaires options ne sont pas), il n'a pas à garder sa taille actuelle lorsque vous modifiez les champs de texte (presque aucun ne selon les drapeaux). Il ne doit même pas être rectangulaire. Il peut aussi prendre plus de la la totalité de l'écran.
(copie de ma réponse sur une question similaire, Obtenir les dimensions du clavier )
J'ai créé un projet de bibliothèque android la hauteur du clavier, même quand les activités à ne pas utiliser la
adjustResize
mode d'entrée.https://github.com/Crysis21/KeyboardHeightProvider
Ma solution est la combinaison de toutes les solutions ci-dessus. Cette solution est également hacky mais de résoudre le problème (au moins pour moi).
android:windowSoftInputMode="adjustResize"
drapeau de l'activité de la balise dans le manifeste comme @le projet de loi suggère.Maintenant de l'histoire principale est dans
onGlobalLayout()
. Là, j'ai calculer la différence entre l'axe y de la temp de vue et la hauteur de vue de la racine deMais de toute façon pour résoudre le problème de @zeeshan0026 un seul drapeau dans le manifeste
android:windowSoftInputMode="adjustResize"
est assez.android:windowSoftInputMode="adjustNothing"
?Ne cherchez plus!
J'ai été à la recherche d'une solution pour un long moment. Après des jours à essayer toutes les astuces proposées sur SOF, j'ai trouvé la solution parfaite qui fonctionne réellement.
Ce projet GitHub montre de la meilleure façon possible:
https://github.com/siebeprojects/samples-keyboardheight
Amusez-vous!
J'ai utilisé pour obtenir la hauteur du clavier par programmation android et testé, s'il vous plaît essayer une fois:
Merci.
OnGlobalLayoutListener
à l'intérieur de la fonction de rappel.