2016-04-12 42 views
24

This trường hợp thiết kế material design nói về thành phần chip. Nhưng tôi không thể tìm thấy mã ví dụ của thành phần này?Thành phần chip trong thư viện hỗ trợ Android?

Tôi làm cách nào để sử dụng?

vui lòng chỉ cho tôi mã XML và mã java.

+0

xem [answer] này (http://stackoverflow.com/a/22243669/6561141). Nó thực sự từ google! – tpk

+0

Kiểm tra câu trả lời của tôi về cách tiếp cận không có thư viện của bên thứ ba. –

Trả lời

2

Hãy thử thư viện này: https://github.com/klinker41/android-chips

Kiểm tra mẫu để có được cảm giác về làm thế nào để sử dụng nó.

+7

Có vẻ như thư viện của bên thứ ba không được tạo bởi google. thư viện chip ban đầu từ thiết kế material design Android. – MomAndDad

+0

Nó dựa trên nguồn tin nhắn AOSP của Google. Nếu nó hoạt động sử dụng nó. Thông số kỹ thuật chỉ là thông số kỹ thuật, không đảm bảo rằng Google sẽ chuẩn bị giải pháp của bên thứ nhất cho mọi thành phần. – razzledazzle

+3

xem [answer] này (http://stackoverflow.com/a/22243669/6561141). Nó thực sự từ google! – tpk

33

Bạn không cần sử dụng thư viện của bên thứ ba để tạo chips.

Một chip về cơ bản là TextView với nền được làm tròn. Bạn cũng có thể thêm nút xóa và ImageView cũng để tạo chế độ xem như chế độ xem được sử dụng cho danh bạ Google.

Vì mục đích của ví dụ, tôi sẽ chỉ sử dụng đơn giản TextView. Đầu tiên tạo giao diện người dùng cho chip.

->shape_chip_drawable.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 

    <solid android:color="@color/colorPrimary" /> 

    <padding 
     android:bottom="12dp" 
     android:left="12dp" 
     android:right="12dp" 
     android:top="12dp" /> 

    <corners android:radius="30dp" /> 
</shape> 

Trong file layout hoạt động của bạn, chỉ cần xác định tập tin này nguồn drawable làm hình nền TextView như thế này:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:background="@drawable/shape_chip_drawable" 
    android:text="Hello, I'm a simple Chip!" 
    android:textColor="@android:color/white" 
    android:textStyle="bold" /> 

Đây là quan điểm được tạo:

Chip view created

Bây giờ chúng tôi có thể sử dụng HorizontalScrollView để hiển thị một hàng chip (như ứng dụng GooglePlay) hoặc sử dụng StaggeredGridLayoutManager để tạo một mạng lưới các con chip đáng kinh ngạc.

[EDIT]

Nếu bạn muốn hiển thị các chip như một FlowLayout, mà không vốn đã được hỗ trợ trong Android, chúng ta cần phải sử dụng một thư viện. Đừng lo lắng, đó là một thay đổi rất nhỏ.

Bạn có thêm dòng sau vào Gradle bạn depencencies:

compile 'com.xiaofeng.android:flowlayoutmanager:1.2.3.2' 

và thiết lập quản lý xem bố trí tái chế của bạn với nó:

recyclerView.setLayoutManager(new FlowLayoutManager()); 

chi tiết bổ sung ở đây trên GitHub

Có một ngày tuyệt vời! Làm upvote nếu nó giúp.

+0

Cảm ơn. Sử dụng recycler với flowLayoutManager là muuuuch tốt hơn thì bất kỳ giải pháp nào khác –

+0

Đẹp, dễ dàng và nhẹ nhàng! Giải pháp tốt nhất, chúng tôi cũng có thể dễ dàng đặt một bản vẽ phù hợp để tạo ra một con chip có thể tháo rời !! –

+0

Giải pháp tuyệt vời! Làm thế nào tôi có thể thay đổi từ mã "màu" ¿? – KNU

3

Tôi biết tôi đến trễ nhưng điều này có thể giúp người khác. Tôi thực sự thích việc triển khai này cũng https://github.com/robertlevonyan/materialChipView. Thư viện này yêu cầu ít nhất com.android.support:appcompat-v7:25.2.0 của thư viện hỗ trợ. Tôi sử dụng nó với trình quản lý bố cục này https://github.com/BelooS/ChipsLayoutManager. Kiểm tra những điều này và xem chúng có đáp ứng các yêu cầu của bạn hay không.

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