Pouvez-vous m'aider à m'aider sur ce
voici mon code pour ajouter du fragment em> strong> p> mais Lorsque j'appuie sur le fragment ajouté, j'ai reçu cette erreur et mon accident d'application. P> FATAL EXCEPTION: main Process: com.tiseno.poplook, PID: 2617
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 5(offset:5).state:9
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4401)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4359)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961)
at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:438)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333)
at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1161)
at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1018)
at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3807)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:603)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:5514)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
3 Réponses :
Vous appelez voir Ce . P> mitems.clear (); code> sans notifier l'adaptateur recyclerview code> que quelque chose dans les données avait changé.
Après chaque modification des données utilisées par l'adaptateur, vous devez appeler Adapter.notifyDatastoSetSetSetSetSetSetSetSetSetSetSetchged (); Code> P>
OMG. pourquoi je n'ai pas vu ça. J'ai essayé d'avoir comme un jour pour comprendre pourquoi. =. = merci Marmor. tu es le meilleur!!
@Tiseno: Vous devriez marquer la réponse comme le correct, cela m'a résolu pour moi aussi, n'oubliez pas non plus voter.
Merci à l'homme, j'ai perdu 3 jours d'essayer de le réparer et c'était juste devant moi.
Travaillé pour moi. Merci.
Pour moi, remplacer SupportsPrédictiveItManimations code> sur FALSE n'a pas résolu l'exception, mais cette solution résolvait-la, merci man.
Je faisais face au même problème, lorsque vous effacez votre liste, vous devez notifier l'adaptateur car chaque fois que vous modifiez la liste et que l'adaptateur contient une liste ancienne, vous devez donc notifier l'adaptateur après avoir effacé. La liste avant d'ajouter de nouveaux éléments dans Adaptateur P>
Faites de l'instance de membres de données dans le démarrage de votre classe p>
yourarraylist .clear(); instance.notifyDataSetChanged();
Après avoir effacé votre liste en avertit l'adaptateur p>
ArrayList<HashMap<String,String>> yourarraylist =new ArrayList<>(); Youradaptername instance;
Le problème peut être lié à l'adaptateur. Si vous utilisez Assurez-vous de remplacer correctement et non fort>: p> SethaSstableIDS (true); code> dans le constructeur de l'adaptateur, vous devez vous assurer que vous utilisez IDS stable . getItemid code> correctement dans l'adaptateur.
Il devrait être: p>
Veuillez formater votre question - Insérez 4 espaces sur chaque ligne pour l'amener à apparaître sous forme de code
Pourquoi quelqu'un descendit ma question. triste vie..
Pas moi mon ami, je travaillais juste sur la file d'attente d'examen, qui ne vote pas. C'est une bonne pratique de décrire la question qu'ils voient lorsque le vote, désolé de ne pas le voir ici.
Suppression de l'espace inutile, de sorte que le code sera correctement indenté et sera utile pour que les autres puissent le traverser et y répondre.