J’ai intégré le nouveau google mappe api v2 fragment dans un pagineur de la vue. Lors du défilement du fragment de la carte, une vue noire chevauche les fragments adjacents. Quelqu'un a résolu ?
Edit : capture d’écran
J’ai intégré le nouveau google mappe api v2 fragment dans un pagineur de la vue. Lors du défilement du fragment de la carte, une vue noire chevauche les fragments adjacents. Quelqu'un a résolu ?
Edit : capture d’écran
Google a publié un correctif pour cela, mais seulement pour 4.1 + (vous n’avez pas besoin de télécharger une nouvelle version de PlayServices, ils ont utilisé un drapeau du côté serveur)
Voici ce que j’utilise pour contourner le problème - assure que vous ne perdez aucun cycle de CPU sur les périphériques > = 4.1
Ma solution: faire usage de la nouvelle snapshot de l'interface de GoogleMap et afficher un aperçu de la carte pendant le défilement de la page.
Voici mon code pour le réglage de l'instantané (c'est dans le même fragment comme carte, appelée FragmentMap.java):
public void setSnapshot(int visibility) {
switch(visibility) {
case View.GONE:
if(mapFragment.getView().getVisibility() == View.VISIBLE) {
getMap().snapshot(new SnapshotReadyCallback() {
@Override
public void onSnapshotReady(Bitmap arg0) {
iv.setImageBitmap(arg0);
}
});
iv.setVisibility(View.VISIBLE);
mapFragment.getView().setVisibility(View.GONE);
}
break;
case View.VISIBLE:
if(mapFragment.getView().getVisibility() == View.GONE) {
mapFragment.getView().setVisibility(View.VISIBLE);
iv.setVisibility(View.GONE);
}
break;
}
}
Où "mapFragment" est mon SupportedMapFragment et "iv" est une ImageView (faire match_parent).
Et ici, je suis contrôler le défilement:
pager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if(position == 0 && positionOffsetPixels > 0 || position == 1 && positionOffsetPixels > 0) {
((FragmentMap)adapter.getRegisteredFragment(1)).setSnapshot(View.GONE);
} else if(position == 1 && positionOffsetPixels == 0) {
((FragmentMap)adapter.getRegisteredFragment(1)).setSnapshot(View.VISIBLE);
}
}
@Override
public void onPageScrollStateChanged(int arg0) {}
@Override
public void onPageSelected(int arg0) {}
});
Mon fragment avec la carte (FragmentMap) est sur la position 1, donc j'ai besoin pour contrôler le défilement de la position 0 à 1 et à partir de la position 1 à 2 (le premier si la clause). "getRegisteredFragment()" est une fonction dans ma personnalisé FragmentPagerAdapter, en qui j'ai une SparseArray(Fragment) appelé "registeredFragments".
Donc, chaque fois que vous faites défiler jusqu'à ou à partir de votre carte, vous voyez toujours un instantané. Cela fonctionne très bien pour moi.
J’ai eu le même problème d’écran noir le défilement de l’affichage de la liste, j’utilisais un fragment de la carte avec affichage de la liste, dans le même écran, j’ai résolu ce problème avec l’utilisation de la propriété magique en xml où je suis parler affichage de liste, il faut juste mettre android : scrollingCache = « false ».ma question est fixé essayer cette propriété d’arrêter à la traîne et scintillement dans vos cartes.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.