2016-04-12 7 views
24

This caso di progettazione del materiale dice sulla componente di chip. Ma non ho trovato il codice di esempio di questo componente?Componente di chip nella libreria di supporto di Android?

Come posso usarlo?

per favore mostrami codice XML e codice java.

+0

vedere [risposta] (http://stackoverflow.com/a/22243669/6561141). In realtà è da Google! – tpk

+0

Controlla la mia risposta per un approccio senza libreria di terze parti. –

risposta

2

Prova questa libreria: https://github.com/klinker41/android-chips

Controllare il campione per avere la sensazione di come usarlo.

+7

Sembra una libreria di terze parti che non è stata creata da Google. dove si trova la libreria di chip originale dal design di materiale Android. – MomAndDad

+0

Si basa sulla fonte di Google per AOSP messenger. Se funziona, usalo. Le specifiche dei materiali sono solo specifiche, non è garantito che Google preparerà la soluzione di prima parte per ogni componente. – razzledazzle

+3

vedi [risposta] (http://stackoverflow.com/a/22243669/6561141). In realtà è da Google! – tpk

33

Non è necessario utilizzare una libreria di terze parti per rendere chips.

Un chip è fondamentalmente uno TextView con uno sfondo arrotondato. Puoi aggiungere un pulsante di cancellazione e uno ImageView anche per creare una vista come quella usata per i contatti di Google.

Per gli scopi dell'esempio userò solo un semplice TextView. Prima crea l'interfaccia utente per il 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> 

Nel file di layout di attività, basta definire il file di risorse drawable come TextView sfondo come questo:

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

Questa è la vista che viene creato:

Chip view created

Ora è possibile utilizzare HorizontalScrollView per visualizzare una fila di chip (come l'applicazione GooglePlay) o utilizzare StaggeredGridLayoutManager per creare una griglia di chip sfalsata.

[EDIT]

Se si desidera visualizzare i chip come FlowLayout, che non è intrinsecamente supportato in Android, abbiamo bisogno di usare una libreria. Non preoccuparti, è un cambiamento molto piccolo.

Dovete aggiungere la seguente riga al Gradle depencencies:

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

e impostare il riciclatore direttore di visualizzazione layout con esso:

recyclerView.setLayoutManager(new FlowLayoutManager()); 

Ulteriori dettagli qui su GitHub

Avere un gran giorno! Fai un voto se aiuta.

+0

Grazie. Usare riciclatore con flowLayoutManager è molto meglio di qualsiasi altra soluzione –

+0

Bello, facile e leggero! La migliore soluzione, possiamo anche mettere facilmente un drawable giusto per creare un chip rimovibile !! –

+0

Ottima soluzione! Come posso cambiare da codice il "colore" ¿? – KNU