Puis-je définir quelque chose comme « infobulle » pour une vue en Android?
-
09-10-2019 - |
Question
Puis-je définir un certain message à apparaître comme une « infobulle » pour un TextView ou bouton?
La solution
Il n'y a pas de concept de « planant » dans un écran tactile, mais vous pouvez définir une LongClickListener pour vous, et un Toast apparaît après une pression longue. Quelque chose comme ceci:
Toast viewToast = Toast.makeText(this, "My View Tooltip", Toast.LENGTH_SHORT);
View myView = (View)findViewById(R.id.my_view);
myView.setOnLongClickListener(new OnLongClickListener() {
@Override
public void onLongClick(View v) {
viewToast.show();
}
});
EDIT: Après avoir lu votre commentaire, vous devez simplement utiliser l'attribut hint
dans votre mise en page XML EditText:
<EditText
android:hint="My tip here" />
Autres conseils
-Premier a établi un textview avec votre touche et réglez-le invisible.
-Créer un fichier XML d'animation avec alpha animation, indiquez combien de temps vous souhaitez afficher (à la fin que l'animation à zéro alpha afin qu'il reste invisible) et le mettre dans res-> dossier anim
-Intérieur vos méthodes de vue onCreate et onClick qui ont besoin infobulle
- définir l'affichage de texte visible
- Accrocher l'animation (comme R.anim.tooltip) à ce point de vue texte
drapeaux -Utiliser booléens et permet à l'utilisateur de désactiver les infobulles dans le menu.
Je vais laisser les détails de code pour vous. Vous les trouverez facilement dans stackoverflow.