2017-09-13 1 views
0

Ich habe eine horizontale RecyclerView innerhalb einer NestedScrollView innerhalb eines SwipeRefreshLayout. Vermutlich ist dies ein Grund für Fehler. Wenn ich die Daten lade, werden die Kinder gut angezeigt, aber sobald ich zu einem Ende blättere und die Kinder verarbeite, füllen sie ihre Ansichten nicht aus.Warum füllen diese Recyclerview-Elemente ihre Ansichten nicht?

In action

Ich habe eine Reihe von verschiedenen Ratschlägen, wie man dieses Problem behebt mit Layoutbeschränkungen, anderen übergeordneten Sichttypen gefunden und Fokus ändern, aber das Problem weiterhin auftritt. onBindViewHolder wird definitiv aufgerufen, aber aus irgendeinem Grund passiert die Bindung nicht?

Antwort

0

Problem gefunden: In meinem Viewholder habe ich bestimmte Layouts als unsichtbar festgelegt und da die Ansichten recycelt wurden, wurden sie nicht angezeigt. Ich musste sie nur sichtbar machen.

Von dieser Lösung https://stackoverflow.com/a/29325270/6136947

0

Dieses seltsame geschah, weil der Prozess Recycling für den Recycler Ansicht, alle Code-Layout an der bind Ansicht geschrieben (in der Ansicht Halter) auf Recycling ignoriert, und es zu lösen, fügen Sie diesen Code:

RecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() { 
      @Override 
      public void onViewRecycled(RecyclerView.ViewHolder holder) { 
        ((BusinessChildViewHolder) holder).onBind(); 
        // onBind method inside your holder and it just applies the layout changes that you need 
      } 
     }); 
+0

Ich versuchte dies, aber immer noch ähnliche Ergebnisse. –

Verwandte Themen