Aller au contenu

Dialog AlwaysOnTop


Jorodan

Recommended Posts

Yosh,

Voici mon problème !

J'ai une tabHostActivity qui a une ListActivity parmi ces child.

Dans la TabHost, j'ai un système de récupération d'update sur le net. S'il y a une mise à jour, elle est proposée à l'utilisateur dans une Dialog. Cette dialog est faite par un showDialog du TabHost.

Dans la listActivity, j'ai une dialog qui s'affiche pendant le chargement de la liste. Cette dialog est faite dans le showDialog de la listActivity.

Le problème est que je voudrais que la dialog du chargement de la liste soit derrière toute autre dialog qui pourrait surgir dont celle de proposition de l'update.

Actuellement, comme elle est lancée après la dialog de l'update, elle se retrouve devant !

Je ne sais pas comment faire ! Y a pas un alwaysOnTop ou AlwaysOnBack ?

Merci pour ceux qui contribueront !

Lien vers le commentaire
Partager sur d’autres sites

J'aurai eu tendance à implémenter cela d'une autre façon:

Ta liste affiche tout d'abord un icon de progression ainsi qu'un texte qui va bien pour signifier à l'utilisateur que les données sont en cours de chargement (ainsi pas de dialogue). Quand tu as récupéré les données à afficher tu fais un update sur ton adapter pour afficher les données issues de ton serveur !

De cette façon pas de conflit de zorder sur les différentes boites de dialogue de ton application.

Je te conseille aussi de jeter un coup d'oeil sur l'excellente librairie faite par Cyril Mottier (http://android.cyrilmottier.com/) : GreenDroid

Les sources sont disponibles via Git : https://github.com/cyrilmottier/GreenDroid

Prend quelques minutes pour essayer l'application GDCatalog qui te donnera rapidement un apercu des composannts graphiques qu'il a mit en place (gestion des listes aisée, ActionBar, ...)

Lien vers le commentaire
Partager sur d’autres sites

Hello,

Une solution (manuelle désolé) non expérimentée pourrait être d'étendre la classe Dialog d'y ajouter un int priority définie entre 0 et x.

Puis d'override showview (ou gérer une pile de dialog déjà lancer), pour récupérer les dialog visible (isshowing) et/ou de jouer avec l'acquisition et la perte de focus (onWindowsFocuschange)

Et gérer un pool de priorité d'affichage, si la nouvelle dialogBox est moins prioritaire que celle déjà visible, la rendre invisible par exemple (changer le drawable, ou autre).

En espérant que ca aide,

Jok

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...