2017-11-28 2 views
1

Ich habe Hauptfragment, innerhalb Hauptfragment habe ich ViewPager. diese Ansicht Pager 2 Fragmente geladen, In jedem Pager eine Recycler Ansicht und Umsetzung von Recycler Viewadapter ist:ViewPager nicht wieder RecyclerViewAdapter

public void onResume() { 
    super.onResume(); 
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 
    recyclerAdapter = new UsersRecyclerAdapter(getContext()); 
    suserList = Collections.emptyList(); 
    recyclerView.setAdapter(recyclerAdapter); 
    recyclerAdapter.setItems(paginator.generatePage(currentPage)); 

diese RecyclerView zeigt eine Liste von Sachen aus dem Dienst. meine Frage ist zum ersten Mal setItems Methode funktioniert und die Liste wird in RecyclerView gezeigt, aber wenn paginator.generatePage(currentPage) die neue Liste von Daten generieren, zeigt meine RecyclerView keine neuen Daten?

ist diese Methode an meinem Recycler Viewadapter:

public void setItems(List<Suser> items) { 
    if (items == null) 
     throw new IllegalArgumentException("Cannot set `null` item to the Recycler adapter"); 
    susers.clear(); 
    susers.addAll(items); 
    notifyDataSetChanged(); 
} 

scheint mein Fragment, das in ViewPager geladen wird nicht wieder aufzufrischen und diese recyclerAdapter.setItems(paginator.generatePage(currentPage)); nicht erneut aufgerufen. Was schlagen Sie vor?

************** bearbeiten *************

ich die Haupt-Fragment zu einem Activity.then geändert habe ich erstellt habe ein Rückruf in meine Aktivität und schließlich habe ich diesen Callback zu Fragment implementiert und notifyDataSetChanged aufgerufen, aber die Liste der Recycler View ist nicht verändert?

@Override 
public void onLoad() { 
    recyclerAdapter.notifyDataSetChanged(); 
} 

Recycler Ansicht stellen immer noch eine Seite auf den ersten Blick dar!

+0

, wenn Sie in onstart Ihre Methoden außer Kraft setzen es Refresh – HemalHerath

+0

@ HemalHerath.no halten verwende ich nicht Methode. wie könnte ich benutzen? –

+0

können Sie mir bitte sagen, warum Sie Recyclerview in onResume Methode setzen – HemalHerath

Antwort

0

ändern onResume zu OnStart Überschreibung Methode und In Adapter Code, versuchen Sie die folgenden Änderungen ..

public void update(ArrayList<Person> data) { 
mData.clear(); 
mData.addAll(data) 
notifyDataSetChanged(); 
} 
+0

Ich habe diese Methode mit anderem Namen: 'setItems'. \t @HemalHerath –

+0

susers.update (Elemente); können Sie bitte versuchen, diese – HemalHerath

+0

nichts ist geändert. Das ist mein Fragment http://codepad.org/CpptIokz mein Adapter http://codepad.org/tvIPxz21 \t @HemalHerath –

Verwandte Themen