Bonjour,
Je cherche à réaliser le même évènement que lors d'un longClick sur un élément de l'actionBar.
Cela ressemble à un Toast mais il est affiché juste à coté de l'élément cliqué, et non en bas de l'écran.
Une idée ?
Version imprimable
Bonjour,
Je cherche à réaliser le même évènement que lors d'un longClick sur un élément de l'actionBar.
Cela ressemble à un Toast mais il est affiché juste à coté de l'élément cliqué, et non en bas de l'écran.
Une idée ?
Il s'agit probablement d'un Toast alors. Tu peux le positionner, il ne s'affiche pas forcément au bas de l'écran (comportement par défaut).
- Positionner un toast à l'aide de la méthode setGravity()
Oui mais non :)
J'aimerai pouvoir définir une anchor pour qu'elle s'affiche à l'endroit du clic.
Ca doit certainement exister
Etant intéressé par ta question, j'ai un peu fouiné ...
Ce que tu recherches est en fait un menu "Quick Actions" personnalisé.
J'ai trouvé le tutorial suivant : http://www.chupamobile.com/tutorial/...ns+-+Tutorial/
C'est fort bien expliqué, mais je trouve que ça reste laborieux. En tous cas, on ne peut pas dire que ce soit une fonctionnalité "basique" vu les calculs qu'il faut faire, les drawables qu'il faut produire, etc...
Si quelqu'un a une solution plus facile, je suis preneur !
Lionel
Non non, ce n'est pas exactement ça que je cherche. Les quickactions j'en ai déjà utilisé, j'y arrive très bien. Ce que je souhaite c'est un Toast tout simple qui vient s'ancrer à coté du bouton cliqué.
Je ne comprends pas trop en quoi la position du Toast peut être aussi importante dans ton application ?
Un Toast est modal et donc bloquant pour le reste de ton application. Autant que ce soit en plein écran non ?
Regarde aussi que la solution que je te propose tu peux très facilement l'adapter (la simplifier en fait) pour créer un popup avec un contenu tout à fait customisable.
Bien à toi.
Lionel
Je pense que tu confonds Toast et Dialog.
Ce que j'essaie d'imiter, c'est le Toast qui apparait par défaut lorsqu'on appuie longtemps sur un item de l'ActionBar
Mea culpa, j'avais en effet mal compris :-)
Je viens de découvrir cette fonctionnalité en testant dans Gmail.
Si je trouve comment faire, je le dis, promis ! :mrgreen:
On peut positionner un toast ou on veut:
Il "suffit" de prendre la position absolue de la view à laquelle le toast se rapporte et décaler un poil histoire que ce soit plus joli...Code:
1
2 toast.setGravity(Gravity.TOP|Gravity.LEFT, x, y);
Si c'est l'endroit du click, alors il doit y avoir un moyen de récupérer le dernier "touch event" (celui duquel provient le click en fait), et du coup le x/y du touch event.
A noter que si ce n'est pas possible par défaut, rien n'empêche de le faire soit:
Code:
1
2
3
4
5
6
7
8 private int lastX, lastY; public boolean onTouch(View v, MotionEvent event) { this.lastX = ... ; this.lastY = ...; return super.onTouch(v,event); }