2016-02-28 17 views
66

Cách đặt RecyclerView bố cụcQuản lý từ XML?Cách đặt ứng dụng RecyclerView: layoutManager = "" từ XML?

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

Xem tài liệu: [recyclerview: LayoutManager] (http://developer.android.com /reference/android/support/v7/widget/RecyclerView.html#attr_android.support.v7.recyclerview:layoutManager) –

+1

@dieter_h bạn có thể cung cấp câu trả lời không ví dụ GridLayoutManager thứ? –

+2

Bạn có thể sử dụng 'app: layoutManager =" android.support.v7.widget.GridLayoutManager "'. Constructor với bốn đối số sẽ được sử dụng ('Context',' AttributeSet', 'int',' int'). Theo tài liệu, đây là _constructor được sử dụng khi trình quản lý bố trí được thiết lập trong XML bởi LayoutManager thuộc tính RecyclerView. Nếu spanCount không được chỉ định trong XML, nó sẽ mặc định thành một cột duy nhất_ – thetonrifles

Trả lời

121

Như bạn có thể kiểm tra in the doc:

tên lớp của Giám đốc Layout được sử dụng.

Lớp học phải mở rộng android.support.v7.widget.RecyclerView $ LayoutManager và có một hàm tạo mặc định hoặc hàm tạo với chữ ký (android.content.Context, android.util.AttributeSet, int, int).

Nếu tên bắt đầu bằng dấu '.', Gói ứng dụng sẽ được đặt trước. Khác, nếu tên có chứa '.', Tên lớp được giả định là tên đầy đủ. Khác, tên gói của trình tái chế (android.support.v7.widget) là tiền tố.

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

Và bạn có thể sử dụng 'android: orientation' trên phần tử RecyclerView để điều khiển hướng của ví dụ: LinearLayoutManager – user3175580

+1

@Gabriele Mariotti Tôi đã kiểm tra việc triển khai và nó sử dụng sự phản chiếu. Điều đó có ổn với hiệu suất khôn ngoan không? –

+1

Theo nhận xét này có vẻ như các tài liệu không còn có lời giải thích hữu ích nữa. Vì vậy, bực bội rằng @Google thậm chí không thể giữ tài liệu của họ chính xác. –

35

nếu bạn muốn sử dụng nó với LinearLayoutManager

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

rằng tương đương với

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

Bạn thêm vào câu trả lời nào của Gabriele Mariotti? –

+2

giải thích những gì tương đương với mã nhưng với ví dụ anther LinearLayout –

+0

Điều gì sẽ xảy ra nếu tôi muốn sử dụng trình quản lý bố cục tuyến tính ngang? –

Các vấn đề liên quan