2016-06-29 15 views
1

Ich versuche, die Seitennummerierung für meine Anwendung zu implementieren, und ich bin teilweise erfolgreich. Wenn ich meinen Server anrufe, erhalte ich 6 Artikel und füge diese Artikel zur Recycleransicht hinzu. Wenn Benutzer kommt und scrollt am letzten Gegenstand, mache ich einen anderen Anruf zum Bediener und ich hole Einzelteile der Seite 2 und ich füge neue Einzelteile der vorhandenen Liste hinzu.So fügen Sie der Recycler-Liste eine Liste neuer Elemente hinzu, um eine Liste anzuzeigen, ohne an den Anfang der Liste zu wechseln

Hier kann ich neue Elemente erfolgreich hinzufügen. Aber das Problem ist, ich rufe adapter.notifyDataSetChanged(), daher geht es zum ersten Artikel nach dem Hinzufügen neuer Elemente.

Wie kann ich verhindern, dass es an die Spitze der Liste geht, was soll ich anders als adapter.notifyDataSetChanged() nennen? Unten ist mein Code Adapter

der Einstellung
toadlineAdapter = new ToadlineAdapter(mContext, getData()); 
recyclerView.setAdapter(toadlineAdapter); 
toadlineAdapter.notifyDataSetChanged(); 
toadlineAdapter.setClickListener(this); 
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 
+0

es keine MUSS "notifyDataSetChanged" ANRUFEN, NACHDEM SIE DIESEN ADAPTER AUF "recyclerView" gesetzt haben !!!!!!!!!!!! ... wo ist auch ein Code zum Hinzufügen von Elementen? – Selvin

+0

... auch von 'RecyclerView.Adapter.notifyDataSetChanged()' docs - * Wenn Sie einen Adapter schreiben, ist es immer effizienter, die spezifischeren Änderungsereignisse zu verwenden, wenn Sie können. Verlassen Sie sich auf notifyDataSetChanged() als ** letzter Ausweg. *** .... haben Sie es überhaupt versucht? – Selvin

Antwort

-1

Keine Notwendigkeit zu benachrichtigen, wenn der Adapter Initialisierung:

toadlineAdapter = new ToadlineAdapter(mContext, getData()); 
recyclerView.setAdapter(toadlineAdapter); 
// remove below line 
// toadlineAdapter.notifyDataSetChanged(); 
toadlineAdapter.setClickListener(this); 
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 

Und benachrichtigen, wenn Sie Elemente hinzufügen, für die Ex:

YOURLIST.add(YOUROBJECT); 
toadlineAdapter.notifyDataSetChanged(); 
Verwandte Themen