Question

Comment créer ce type de vues dans mon application? (La capture d'écran est en fait d'une application Android disponible sur Android Market).

enter image description here

Je suis confus car je suppose que nous pouvons créer le même type de mise en page soit en utilisant GridView ou en utilisant ListView.

Problèmes:

  • Dans GridView, pouvons-nous donner un séparateur entre deux lignes? Pouvons-nous donner un fond à chaque ligne dans GridView?
  • Dans ListView, je pense que nous pouvons personnaliser le ListView avec 3 livres consécutifs avec arrière-plan, et nous pouvons également donner un séparateur.

De votre côté expert, veuillez me suggérer une solution possible pour concevoir et créer le même type de mise en page pour l'application Android.

Était-ce utile?

La solution

Regardez le code de Des étagères, écrit par Romain Guy (l'un des créateurs de Listview).

Il a utilisé un gridview:

  • pas de séparateur

  • L'arrière-plan est un bitmap dessinable

    <bitmap xmlns: android = "http://schemas.android.com/apk/res/android" Android: src = "@ drawable / shelf_panel" Android: tileMode = "repeat" />

  • L'image d'arrière-plan est comme ceci:

Le code mérite également un coup d'œil car il contient d'autres solutions intéressantes.

Autres conseils

Problèmes énoncés:
Dans GridView, pouvons-nous donner un séparateur entre deux lignes? Pouvons-nous donner un fond à chaque ligne dans GridView?

Eh bien, vous pouvez toujours inventer un séparateur en ajoutant quelque chose en bas de votre vue. Faites en sorte qu'il «se connecte» sur les côtés, et vous ne saurez pas la différence. Cela vous coûtera une vue supplémentaire par réseau de grille, donc probablement pas la meilleure option.

Dans ListView, je pense que nous pouvons personnaliser le ListView avec 3 livres consécutifs avec arrière-plan, et nous pouvons également donner un séparateur.

Eeuhm, oui, même si je ne vois pas quel est le problème?

Avec une ListView, chaque ligne est comptée comme un élément, il y aura donc un travail supplémentaire dans la logique qui maintient chaque élément dans la ligne séparée. Je vous suggère d'utiliser un GridView. Pour chaque élément de grille, gardez un espace d'étagère vide (pour un livre) comme image d'arrière-plan. Cette image comprendra la base d'étagère. Il n'y a donc pas besoin de lignes supplémentaires. L'image devrait ressembler à ceci:

Grid Element Background

Je suggère plutôt d'avoir une vue de grille et de visualiser Flipper si le nombre de livres est limité.

Voir le flipper donnera un meilleur effet que le défilement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top