2016-02-06 14 views
6

Tôi đang cố gắng xây dựng giao diện người dùng liên quan đến RecyclerView hoặc GridView, nơi tôi muốn đặt số cột tự động tùy thuộc vào số lượng và chiều rộng của các mục rằng tôi đang tự động điền.LayoutManager for RecyclerView để thiết lập số lượng cột tự động theo chiều rộng của các mục

Dưới đây là hình ảnh của những gì tôi đã đạt được cho đến nay ...

my current UI

Dưới đây là hình ảnh của những gì tôi đang cố gắng để đạt được ...

my target UI

Bố cục mặt hàng của tôi xml

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:background="@drawable/hollow_white_background" 
     android:id="@+id/foodItemName" 
     android:text="PIZZA" 
     android:gravity="center" 
     android:textColor="@color/colorGray300" 
     android:textStyle="bold" 
     android:textSize="15sp" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" /> 

P thuê Trợ giúp!

+0

Vui lòng cung cấp mục layout xml và mã mà bạn sử dụng để cấu hình GridLayoutManager. – thetonrifles

+0

Nhìn vào UI mục tiêu của bạn, tôi nghĩ bạn không thể lấy nó bằng cách sử dụng RecyclerView với trình quản lý bố cục chuẩn. Bạn cần một số loại FlowLayout. Có nhiều triển khai có sẵn. Ví dụ [ở đây] (https://github.com/thetonrifles/android-tags-selector) nó là một kho chứa của tôi bao gồm một cái gì đó tương tự. – thetonrifles

+0

Có lẽ FlowLayout là những gì bạn đang tìm kiếm. Xem https://github.com/ApmeM/android-flowlayout hoặc https://github.com/blazsolar/FlowLayout. –

Trả lời

0

Trong tệp xml của bạn, hãy thêm thuộc tính android: numColumns = "auto_fit" và android: stretchmode = "columnWidth" cho GridView của bạn. Thuộc tính đầu tiên quyết định số lượng cột sẽ phụ thuộc vào kích thước màn hình và thuộc tính thứ hai quyết định phải làm gì với khoảng trống thừa, trong trường hợp này làm tăng độ rộng cột.

+1

đã làm điều đó rồi, nó vẫn chỉ hiển thị hai cột với các mục của tôi được căn chỉnh ở bên trái, không xử lý thêm không gian. Những gì tôi muốn là khi chiều rộng của mặt hàng của tôi là nhỏ, sau đó nó sẽ hiển thị như 3 cột hoặc nhiều hơn và khi chiều rộng là lớn, sau đó nó sẽ hiển thị 1 hoặc 2 cột tự động! –

+0

@AyushMaurya, những thuộc tính đó phải làm chính xác những gì bạn cần. Bạn có thể cập nhật câu hỏi với tệp xml hiện tại của mình không? –

+0

đây là xml tôi đang sử dụng và câu hỏi vẫn như cũ. –

0

Hãy thử sử dụng StaggeredGridLayoutManager như LayoutManager của RecyclerView với cố định width của item_layout.xml

+0

StaggeredGridLayoutManager ảnh hưởng đến hàng, chứ không phải cột! –

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