java.lang.IllegalStateException: RecyclerView enthält keinen LayoutManager in Fragment

7

Ich war gerade dabei, eine Aktivität in ein Fragment zu verwandeln und bekam den folgenden Fehler, sobald ich den RecyclerView aufgeblasen habe.

%Vor%
  

java.lang.IllegalStateException: RecyclerView hat keinen LayoutManager

Bevor ich meine Aktivität in ein Fragment änderte, lief die Inflation gut.

Einige weitere Untersuchungen haben ergeben, dass das Entfernen aller meiner untergeordneten Elemente aus dem recyclerview-Layout zur Lösung des Problems beigetragen hat. Allerdings verstehe ich nicht, warum das irgendwas ändern würde und warum es früher mit einer Aktivität gearbeitet hat.

FUNKTIONIERT

%Vor%

FUNKTIONIERT NICHT

%Vor%

Was fehlt mir hier?

    
Edward van Raak 19.12.2014, 10:17
quelle

5 Antworten

26

Diese Frage ist ziemlich alt, aber zum Wohle der Menschen, die immer noch mit diesem Thema konfrontiert sind, dachte ich, ich würde eine Antwort hinterlassen. Ich lerne gerade Android-Entwicklung und dieses Problem war frustrierend. Später fand ich heraus, dass Sie keine Ansichten oder Ansichtsgruppen unter RecyclerView hinzufügen dürfen. Das Layout, das unter RecyclerView angezeigt werden soll, muss separat in einer unabhängigen Ressourcendatei definiert werden.

Dann können Sie in der Adapterimplementierung (die RecyclerView.Adapter<> erweitert, in der überschriebenen Methode public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) , wenn Sie das Layout für die Ansicht aufblasen (dies vergrößert das Layout für jedes Element der Recycler-Ansicht) angeben Das obige separate Layout, das Sie erstellt haben. Android bläht dann dieses Layout für jedes Element auf, das der Recycler-Ansicht hinzugefügt werden muss.

Dieser Artikel hat mir geholfen Sieh das klar.

    
Suhas 08.11.2015 22:13
quelle
2

Ich hatte dasselbe Problem, als ich versucht habe, android-parallax-recycleview zu verwenden.

Die Lösung war einfach, Sie können den Layout Manager Manager manuell erstellen.

Code-Snippet von Beispiel-Parallaxrecycler :

%Vor%     
Mohammad Walid 20.01.2015 22:00
quelle
1

Am Ende habe ich die Ansichten einfach so aufgepumpt:

%Vor%     
Edward van Raak 19.12.2014 15:56
quelle
1

RecyclerView ist ein ViewGroup , für das LayoutManager benötigt wird, um die Layouts seiner untergeordneten Elemente zu erstellen. In Ihrem Fall muss RecyclerView die untergeordnete Ansicht an die LayoutManager übergeben, aber ich bin mir nicht sicher, ob es möglich ist, die XML-Referenz von View an LayoutManager zu übergeben.

    
Nikola Despotoski 19.12.2014 12:32
quelle
0

Immer noch null Zeigerausnahme, auch wenn ich sie in onCreateView initialisiere.

Fügen Sie es programmatisch hinzu.

%Vor%     
Biro Csaba 20.01.2015 09:46
quelle