2016-02-28 7 views
66

Wie setze ich den layoutManager RecyclerView aus XML?Wie setze ich RecyclerView App: layoutManager = "" aus XML?

<android.support.v7.widget.RecyclerView 
     app:layoutManager="???" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
+0

Siehe Dokumentation: [recyclerview: Layoutmanager] (http://developer.android.com /reference/android/support/v7/widget/RecyclerView.html#attr_android.support.v7.recyclerview:layoutManager) –

+1

@dieter_h können Sie eine Antwort wi bereitstellen th GridLayoutManager Beispiel? –

+2

Sie können 'app: layoutManager =" android.support.v7.widget.GridLayoutManager "' verwenden. Konstruktor mit vier Argumenten wird verwendet ('Context',' AttributeSet', 'int',' int'). Laut Dokumentation ist dies der _Constructor, der verwendet wird, wenn der Layout-Manager durch das RecyclerView-Attribut layoutManager in XML festgelegt wird. Wenn spanCount nicht im XML angegeben ist, wird standardmäßig eine einzelne Spalte verwendet_ – thetonrifles

Antwort

121

Wie Sie in the doc überprüfen:

Klassenname des Layout-Manager verwendet werden.

Die Klasse muss android.support.v7.widget.RecyclerView $ LayoutManager erweitern und entweder einen Standardkonstruktor oder Konstruktor mit der Signatur (android.content.Context, android.util.AttributeSet, int, int) haben.

Wenn der Name mit einem '.' Beginnt, wird dem Anwendungspaket das Präfix vorangestellt. Wenn der Name ein '.' Enthält, wird angenommen, dass der Klassenname ein vollständiger Klassenname ist. Andernfalls wird der Name des Recycler-Ansichtspakets (android.support.v7.widget) vorangestellt.

<android.support.v7.widget.RecyclerView 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    app:layoutManager="android.support.v7.widget.GridLayoutManager" > 
+19

Und Sie können 'android: orientation' auf dem RecyclerView-Element verwenden, um die Ausrichtung von z. LinearLayoutManager – user3175580

+1

@Gabriele Mariotti Ich überprüfte die Implementierung und es verwendet Reflexion. Ist das in Bezug auf die Leistung okay? –

+1

Ab diesem Kommentar scheint es, dass die Dokumente diese nützliche Erklärung nicht mehr haben. So frustrierend, dass @Google die Dokumente nicht einmal korrekt halten kann. –

35

, wenn Sie verwenden möchten es mit LinearLayoutManager

<android.support.v7.widget.RecyclerView 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    app:layoutManager="android.support.v7.widget.LinearLayoutManager" > 

dass entspricht

LinearLayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); 
mRecyclerView.setLayoutManager(mLayoutManager); 
+1

Was ist Ihre Ergänzung zu Gabriele Mariotti Antwort? –

+2

erklären, was entspricht in Code, aber mit anderen Beispiel LinearLayout –

+0

Was ist, wenn ich den horizontalen linearen Layout-Manager verwenden möchte? –

Verwandte Themen