2016-04-12 5 views
24

This Material Design Showcase sagt über Chips-Komponente. Aber ich konnte Beispielcode dieser Komponente nicht finden?Chips Komponente in Android-Support-Bibliothek?

Wie kann ich es verwenden?

Bitte zeigen Sie mir XML-Code und Java-Code.

+0

siehe diese [Antwort] (http://stackoverflow.com/a/22243669/6561141). Es ist eigentlich von Google! – tpk

+0

Überprüfen Sie meine Antwort für einen Ansatz ohne 3rd-Party-Bibliothek. –

Antwort

2

Versuchen Sie, diese Bibliothek: https://github.com/klinker41/android-chips

die Probe prüfen Gefühl dafür zu bekommen, wie es zu benutzen.

+7

Es sieht aus wie 3rd-Party-Bibliothek, die nicht von Google gemacht wird. wo ist original chips library von Android material design. – MomAndDad

+0

Es basiert auf der Quelle von Google für AOSP Messenger. Wenn es funktioniert, benutze es. Materialspezifikationen sind nur Spezifikationen. Es ist nicht garantiert, dass Google für jede Komponente eine First-Party-Lösung vorbereitet. – razzledazzle

+3

siehe [Antwort] (http://stackoverflow.com/a/22243669/6561141). Es ist eigentlich von Google! – tpk

33

Sie müssen keine Bibliothek von Drittanbietern verwenden, um chips zu erstellen.

Ein Chip ist im Grunde ein TextView mit einem abgerundeten Hintergrund. Sie können eine Löschschaltfläche und eine ImageView hinzufügen, um auch eine Ansicht zu erstellen, wie sie für Google-Kontakte verwendet wird.

Für die Zwecke des Beispiels werde ich nur eine einfache TextView verwenden. Erstellen Sie zuerst die Benutzeroberfläche für den 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> 

In Ihrer Tätigkeit Layout-Datei definieren gerade diese ziehbar Ressource-Datei als TextView Hintergrund wie folgt aus:

<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" /> 

Dies ist der Ansicht ist, welche erstellt wird:

Chip view created

Jetzt können wir HorizontalScrollView verwenden, um eine Reihe von Chips (wie Google Applikation) zum Anzeigen oder StaggeredGridLayoutManager verwenden ein versetztes Raster von Chips zu bauen.

[EDIT]

Wenn Sie die Chips als FlowLayout zeigen wollen, die in Android unterstützt nicht von Natur aus ist, müssen wir eine Bibliothek verwenden. Mach dir keine Sorgen, es ist eine sehr kleine Veränderung.

Sie haben die folgende Zeile in Gradle hinzufügen depencencies:

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

und Ihre Recycler Ansicht Layout-Manager setzen mit ihm:

recyclerView.setLayoutManager(new FlowLayoutManager()); 

Weitere Details hier auf GitHub

Haben Sie einen schöner Tag! Upvote, wenn es hilft.

+0

Danke. Recycler mit dem flowLayoutManager zu verwenden ist viel besser als jede andere Lösung –

+0

Schön, einfach und leicht! Beste Lösung, wir können auch einfach einen rechten Drawable setzen, um einen entfernbaren Chip zu machen !! –

+0

Große Lösung! Wie kann ich vom Code die "Farbe" ¿ändern? – KNU