Android: quelle est la mise en page quand un est actif IME?
-
28-09-2019 - |
Question
Peut-être une certaine expérience: Je suis en train d'avoir un clavier spécifique vue visible au-dessus d'un scrollable EditText
plein écran lorsque l'utilisateur clique dessus. Le problème est que si le curseur se trouve au bas de l'EditText
il est caché par le clavier vue sauté vers le haut.
La différence évidente à la vue régulière IME est que la vue pousse IME le EditText
vers le haut et permet à l'utilisateur défiler toute EditText
dans cette zone supérieure. Le clavier vue se trouve au fond. Tout est visible et accessible. Voilà ce que je veux réaliser avec mon pop-up aussi.
Par conséquent, ma question est: qu'est-ce que l'aspect de la mise en page comme lorsqu'un régulière est visible IME? Je ne ai pas besoin de l'animation (s'il est difficile de le faire, je peux sauter cette partie).
J'ai essayé de boucle à travers le schéma de la hiérarchie pour voir ce qui est différent. Voici avec visible IME:
root: com.android.internal.policy.impl.PhoneWindow$DecorView
android.widget.LinearLayout
android.widget.FrameLayout
android.widget.TextView
android.widget.FrameLayout #1
android.widget.RelativeLayout
android.widget.ScrollView
android.widget.EditText
com.mytest.KeyboardView
Ici, il est sans mon avis et IME pop-up visible:
root: com.android.internal.policy.impl.PhoneWindow$DecorView
android.widget.LinearLayout
android.widget.FrameLayout
android.widget.TextView
android.widget.FrameLayout #1
android.widget.RelativeLayout
android.widget.ScrollView
android.widget.EditText
com.mytest.KeyboardView
De toute évidence, il n'y a pas de différence. Est-ce vraiment le manque IME?
Pour faciliter la compréhension que j'ai marqué mon application avec « # 1 », de sorte que le RelativeLayout
est la racine-élément dans mon XML-layout.
Quelqu'un peut-il me aider s'il vous plaît? Si quelqu'un a une mise en page de style XML prêt, je serais plus heureux de le voir.
Mise à jour
Maintenant, je crois que je me suis trompé en pensant que la vue serait IME se mettre dans le schéma de la hiérarchie de l'activité.
En attendant, je tente de faire un travail de PopupWindow
, mais n'a pas pu trouver quelque chose qui réglerait le problème avec le curseur caché dans le EditText
.
Par conséquent, permettez-moi de poser cette question: comment la vue apparaît IME ou comment est-il tissé dans l'affichage global? Comment se fait il défiler sous le champ d'édition et déplace le champ d'édition et fait défiler la façon dont il fait?
La solution
Il semble que l'IME n'est pas accessible. Ou du moins il n'est pas accessible de quelque manière que par l'application.
J'ai maintenant une vue assez statique de mon EditText
et le clavier. Le clavier ne hover dans l'écran, ni elle ne toute autre substance de fantaisie. Il est monté en dessous du EditText
. C'est ça. Il ne semble pas spectaculaire ou quoi que ce soit, mais nous ici d'accord que l'utilisateur ne sera probablement pas entrer dans des histoires longues.