2017-08-29 1 views
0

Dans mon application, il est vue recycleur dans le fragmentRecyceler Voir sur la réplication de rotation de l'appareil

Quand je suis comme suit son obtenu dupliqués dans Nexus 6 5.1.1 dispositif 1) Modifier l'orientation de l'appareil au paysage 2) verrouiller le dispositif 3) changement d'orientation de l'appareil pour portrait 4) déverrouiller dispositif maintenant pour 1 sec Il y a la réplication de vue

J'ai setRetainInstance = true dans le fragment

et

getSupportFragmentManager().beginTransaction() 
.add(getContentFrame(),fragment,fragment.getClass().getName()) 
         .addToBackStack(fragment.getClass().getName()) 
         .commit(); 

pour ajouter fragment

before rotationafter rotation

+0

Qu'en est-il du code d'inutilisation Recyclerview? où vous le mettez dans le fragment? –

+0

@Ajay_Reddy onCreateView – Tushar

+0

Il suffit d'ajouter check increate de votre activité dans laquelle vous ajoutez fragment. Ajouter un fragment uniquement si savedInstance n'est pas égal à null. –

Répondre

0

Cela se produit généralement lorsque vous ajoutez à nouveau le fragment, bien qu'il existe déjà.

getSupportFragmentManager().beginTransaction().add(getContentFrame(),fragment,fragment.getClass().getName()) 
        .addToBackStack(fragment.getClass().getName()) 
        .commit(); 

Je devine que vous appelez cela deux fois (une fois au début et une fois après le changement d'orientation), de sorte que votre fragment est ajouté deux fois. En fonction de la façon dont vous l'avez implémenté, soit ajoutez simplement une vérification juste avant cet appel if (getSupportFragmentManager().findFragmentByTag(YourFragment.class.getName()) == null) notre contrôle dans l'activité onCreate() si (savedInstanceState == null).