Ionique dans les 2, comment faire flotter un élément au-dessus du clavier lorsque le clavier montre?
Je veux que mon message de saisie de la barre de flotter au-dessus du clavier lorsque le clavier affiche, mais il regarde comme il n'y a pas clavier-joindre la directive (comme v1) Ionique dans les 2 encore (peut-être dans les œuvres?). Il y a tout de remplacement/solution de contournement?
Comportement actuel:
Le comportement souhaité:
Voici le code de mon message de saisie de la barre:
<ion-toolbar position="bottom" *ngIf="userIsAdmin">
<form (ngSubmit)="onSubmit(f)" #f="ngForm" class="message-form">
<ion-badge class="message-form-badge">Admin</ion-badge>
<ion-input type="text" placeholder="Type a message..." ngControl="messageInput"></ion-input>
<button type="submit" small class="message-form-button">Send <ion-icon name="send"></ion-icon></button>
</form>
</ion-toolbar>
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution qui fonctionne pour moi sur IOS.
Lorsque vous examinez les
<ion-item>
avec<ion-input>
dans le navigateur(débogage d'utiliser Safari pour IOS), vous pouvez trouver que les ionique génère un<div class='input-cover'>
qui a le styleposition: absolute;
.Écrire un CSS qui remplace ce que ci-dessous
Cela a fait l'affaire pour moi, et maintenant, quand vous vous concentrez sur un champ de saisie, l'affichage défile dans l'affichage et ne pas se cacher sous le clavier plus et tous les travaux de cette beurre lisse.
input-cover
être ajoutés n'importe où.J'ai également nécessaires pour mettre en œuvre cette. Je l'ai fait et ça fonctionne parfaitement.
1er vous devez utiliser des plugins cordova clavier, et au début d'appel
cordova.plugins.Keyboard.disableScroll(true);
de sorte que le clavier ne sera pas pousser votre vue.2e vous avez besoin d'écouter sur keyboardshow et le clavier de masquer des événements comme cela avec les handlers:
Que vous pouvez faire une observables de l'événement comme celui-ci:
Que vous pouvez écouter cette observable. Si le clavier est ouvert que vous modifiez la hauteur du conteneur où vos messages sont affichés. En gros, vous avez à faire baisser la hauteur du clavier. Voici comment je l'ai fait
et la modification de ces propriétés avec ngStyle comme ce
J'ai aussi besoin de cela pour chatapp, et maintenant ça fonctionne parfaitement (même si vous faites pivoter l'écran en portrait ou en mode paysage), l'entrée flotte toujours au-dessus du clavier, tout comme dans les applications natives 🙂
J'espère que cela va vous aider!
La solution que j'ai utilisé et que je suis satisfait est:
Keyboard.disableScroll(true);
<input type="text">
au lieu de<ion-input type="text">
Fonctionne parfaitement maintenant!
J'ai eu ce problème avec Android, j'ai donc créé une méthode de service que je pourrais mettre en composants individuels. Il est basé sur l'utilisation
<ion-input>
champs à l'intérieur d'un<ion-content>
tag.Cela prend avantage de la
setScrollTop
méthode qui a été ajouté à laContent
classe.Service
Composant