31 votes

Composant Chips dans la bibliothèque de support Android ?

Ce site le cas d'école de conception matérielle dit à propos du composant des puces. Mais je n'ai pas trouvé d'exemple de code pour ce composant ?

Comment puis-je l'utiliser ?

veuillez me montrer le code XML et le code java.

0 votes

Voir ceci réponse . C'est en fait à partir de google !

0 votes

Consultez ma réponse pour une approche sans bibliothèque tierce.

0 votes

Il suffit d'utiliser le formulaire officiel Bibliothèque des composants matériels

55voto

Ankit Aggarwal Points 1611

Il n'est pas nécessaire d'utiliser une bibliothèque tierce pour faire de l'informatique un outil d'aide à la décision. puces .

Une puce est en fait un TextView avec un fond arrondi. Vous pouvez ajouter un bouton de suppression et un ImageView également pour créer une vue telle que celle utilisée pour les contacts Google.

Pour les besoins de l'exemple, je n'utiliserai qu'un simple TextView . Créez d'abord l'interface utilisateur de la puce.

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

Dans le fichier de mise en page de votre activité, il suffit de définir ce fichier de ressource traçable comme étant le TextView comme ça :

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

C'est la vue qui est créée :

Chip view created

Nous pouvons maintenant utiliser HorizontalScrollView pour afficher une rangée de puces (comme l'application GooglePlay) ou utiliser la fonction StaggeredGridLayoutManager pour construire une grille échelonnée de puces.

[EDIT]

Si vous voulez montrer les jetons comme un FlowLayout qui n'est pas intrinsèquement pris en charge par Android, nous devons utiliser une bibliothèque. Ne vous inquiétez pas, c'est un tout petit changement.

Vous devez ajouter la ligne suivante à vos dépendances Gradle :

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

et définissez votre gestionnaire de mise en page de la vue du recycleur avec celui-ci :

recyclerView.setLayoutManager(new FlowLayoutManager());

Plus de détails ici sur GitHub

Passez une bonne journée ! Votez en haut si cela vous aide.

0 votes

Merci. L'utilisation du recycleur avec le flowLayoutManager est bien meilleure que toute autre solution.

0 votes

Agréable, facile et léger ! Meilleure solution, on peut aussi facilement mettre une tirette droite pour faire une puce amovible ! !!

0 votes

Excellente solution ! Comment puis-je changer la "couleur" à partir du code ?

4voto

razzledazzle Points 1545

Essayez cette bibliothèque : https://github.com/klinker41/Android-chips

Consultez l'échantillon pour vous faire une idée de son utilisation.

11 votes

On dirait une bibliothèque tierce qui n'a pas été créée par Google. Où est la bibliothèque originale des puces d'Android Material Design ?

0 votes

Il est basé sur la source de Google pour AOSP messenger. Si cela fonctionne, utilisez-le. Les spécifications matérielles ne sont que des spécifications, il n'est pas garanti que Google prépare une solution tierce pour chaque composant.

3 votes

Voir ceci réponse . C'est en fait à partir de google !

4voto

ninyarko Points 51

Je sais que je suis en retard mais cela peut aider d'autres personnes. J'aime aussi beaucoup cette mise en œuvre https://github.com/robertlevonyan/materialChipView . Cette librairie nécessite au moins com.android.support:appcompat-v7:25.2.0 de la bibliothèque de soutien. Je l'utilise avec ce gestionnaire de mise en page https://github.com/BelooS/ChipsLayoutManager . Consultez-les et voyez s'ils répondent à vos besoins.

0 votes

Ce serait génial s'il était écrit correctement. Malheureusement, il présente de nombreux problèmes, surtout si vous l'utilisez de manière programmatique. Une telle déception.

0 votes

J'ai essayé la bibliothèque. Oui, il y a beaucoup de problèmes. J'ai perdu mon temps.

0 votes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X