2016-02-28 14 views
66

Jak ustawić layoutManager RecyclerView z XML?Jak ustawić aplikację RecyclerView: layoutManager = "" z XML?

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

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

+1

@dieter_h czy możesz udzielić odpowiedzi th przykład GridLayoutManager? –

+2

Możesz użyć 'app: layoutManager =" android.support.v7.widget.GridLayoutManager "'. Zostanie użyty konstruktor z czterema argumentami ('Context',' AttributeSet', 'int',' int'). Zgodnie z dokumentacją jest to _konstruktor używany, gdy menedżer układu jest ustawiony w XML przez układ szablonu atrybutów RecyclerView. Jeśli spanCount nie jest określony w XML, domyślnie jest to jedna kolumna: – thetonrifles

Odpowiedz

121

Jak można sprawdzić in the doc:

nazwa Klasa menedżera układu ma być używany.

Klasa musi rozszerzyć android.support.v7.widget.RecyclerView $ LayoutManager i mieć domyślny konstruktor lub konstruktor z podpisem (android.content.Context, android.util.AttributeSet, int, int).

Jeśli nazwa zaczyna się od ".", Pakiet aplikacji jest poprzedzany prefiksem. Inaczej, jeśli nazwa zawiera ".", Zakłada się, że nazwa klasy jest pełną nazwą klasy. Inaczej, nazwa pakietu widoku recyklingu (Android.support.v7.widget) jest poprzedzona prefiksem.

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

Można również użyć opcji 'Android: orientation' na elemencie RecyclerView, aby kontrolować orientację np. LinearLayoutManager – user3175580

+1

@Gabriele Mariotti Sprawdziłem implementację i korzysta z refleksji. Czy to w porządku ze względu na wydajność? –

+1

Od tego komentarza wydaje się, że dokumenty nie mają już użytecznych wyjaśnień. Tak frustrujące, że @Google nie może nawet zachować poprawności swoich dokumentów. –

35

jeśli chcesz używać go z LinearLayoutManager

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

że odpowiednikiem

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

Jaki jest twój wkład w odpowiedź Gabriele Mariotti? –

+2

wyjaśnić, co jest równoważne w kodzie, ale z innym przykładem LinearLayout –

+0

Co jeśli chcę użyć poziomego liniowego menedżera układu? –

Powiązane problemy