IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

MapFragment parfois noir


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Par défaut MapFragment parfois noir
    Bonjour à tous,

    J'utilise une SupportMapFragment (Gmaps API2) dans l'une de mes applications, tout fonctionne correctement sauf que parfois la carte reste noir, comme si elle ne s'était pas chargée.
    > Bizarrement, switcher sur un autre fragment (slidingMenu) puis y revenir la fait subitement apparaitre (redrawn?)

    Quelqu'un aurait une idée pour éviter ce désagrément? (je me vois assez mal dire à mon client que si la carte reste noir, il lui faut switcher d'écran pour y revenir ensuite et Ô magie! la carte est apparue )

    voila le code de la map: (je remplace dynamiquement une frameLayout par la map)
    Layout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [...]
    <FrameLayout 
    	android:id="@+id/loc_containerMap"
    	android:layout_width="match_parent"
    	android:layout_height="match_parent"
    	android:layout_weight="1"
    	android:background="@android:color/transparent"
    	>
    </FrameLayout>
    [...]
    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    @Override
        protected void onViewInflating(View root) {
            if (supportMapFragment == null) {
                supportMapFragment = new SupportMapFragment();
            }
            listview = (ListView) root.findViewById(R.id.fragment_loc_listview);
            listview.setOnItemClickListener(this);
            getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.loc_containerMap, supportMapFragment).commit();
     
            loadData();
        }
    En vous remerciant par avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Une des solutions (hack) est d'ajouter une View transparent par dessus la Map.
    Inspirez vous de ce Gist par jgilfelt

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Par défaut
    J'avais lu plusieurs choses à propos de ce hack mis je pensais que ce n'etait que pour le scroll qui rendait la map noire?

    il est bien marqué "when transitionned", or dans mon cas, c'est à l'apparition de la map qu'elle reste noire :s

    J'ai tout de même rajouté un framelayout transparent recouvrant le viewpager comme indiqué dans le lien que tu m'as fourni.

    Comme le bug est aléatoire, je ne peux certifier que cela marche mais pour le moment je n'ai plus eu l'ecran noir

    Merci pour ta réponse en tous les cas.

    EDIT: je viens de tomber sur l'ecran noir :s
    EDIT 2 : tu as écris une "des" solutions, cela sous entend t'il qu'il y en ait d'autres??

  4. #4
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Il faut bien penser à nettoyer la carte, car ci celle ci n'est pas nettoyé a son ré affichage cela va poser problème, je ne sais pas si ton souci viens de là mais cela peut être une piste.

    Donc bien penser a faire un remove sur ton fragment à la fin de l'utilisation de la map.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Par défaut
    En fait mon soucis se passe AVANT son utilisation, c'est à son tout premier affichage que parfois elle reste noir.

    Au contraire, si je manipule l'application, je change de fragment par exemple, pour ensuite revenir sur la carte, celle-ci s'est refresh et s'affiche correctement.

    c'est réellement le 1er affichage qui semble "incomplet" parfois (1 fois sur 4 environ)

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    J'ai eu un problème similaire avec le slide récemment.
    La vue transparente a réglée une partie du souci, mais il a en plus fallu que je crée une classe fille de la Google Maps ne redéfinissant que le onCreateView :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class CustomMapFragment extends SupportMapFragment {
     
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup view, Bundle savedInstance) {
            View layout = super.onCreateView(inflater, view, savedInstance);
     
            FrameLayout frameLayout = new FrameLayout(getActivity());
            frameLayout.setBackgroundColor(getResources().getColor(android.R.color.transparent));
            ((ViewGroup) layout).addView(frameLayout,
                new ViewGroup.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.FILL_PARENT));
            return layout;
        }
    }

    et faisant... ben, comme le hack précédent... une simili-vue transparente.

    De mon coté, ça a résolu a 90% le problème. Je n'ai plus d'écran noir sur le slide MAIS il reste une petite portion noire quand même, mais acceptable.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

Discussions similaires

  1. [IDE][VSC++Express]Pourquoi parfois mon écran devient noir?
    Par olivierm79 dans le forum Visual Studio
    Réponses: 4
    Dernier message: 27/04/2006, 13h14
  2. Mon vertexbuffer apparaît completement noir
    Par Imhotep dans le forum DirectX
    Réponses: 3
    Dernier message: 14/07/2004, 16h11
  3. [GDI] dessin qui s'affiche en couleur puis en noir et blanc
    Par Harry_polin dans le forum Windows
    Réponses: 4
    Dernier message: 25/06/2004, 12h57
  4. Transparence autre qu'avec le noir...
    Par Ptibibi dans le forum DirectX
    Réponses: 11
    Dernier message: 07/06/2004, 18h13
  5. Sortie tv - Image en noir et blanc
    Par Demco dans le forum Périphériques
    Réponses: 7
    Dernier message: 22/11/2003, 18h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo