2011-12-02 5 views
2

Est-il possible de créer une grille 3 * 3 en utilisant le nouveau GridLayout dans ICS? J'ai essayé de nombreuses méthodes comme spécifier rowCount et columnCount à 3. Je ne peux pas comprendre les bases de gridlayout.Création d'une grille 3 * 3 à l'aide du nouveau GridLayout

Je souhaite créer une grille où la disposition divise l'espace disponible en cellules de même taille.

J'ai été capable de créer une grille d'icônes mais la taille n'était pas égale. Chaque cellule a pris la taille de l'icône.

Je ne suis pas à la recherche de dispositions alternatives car j'essaie de comprendre comment utiliser GridLayout.

+0

Peut-être que vous pouvez poster la mise en page que vous avez essayé comme point de départ. – kabuko

+0

Je n'ai plus le code écraser le fichier xml avec de nouvelles choses. Mais il semble que la grille ne fait pas vraiment ce que je pense. – blessenm

Répondre

1

C'est vraiment plus sac TableLayout's. GridLayout est destiné à aider à aplatir ce qui peut devenir des hiérarchies de vues profondément imbriquées. This blog post donne un bon aperçu de ce qu'il est bon et pourquoi il est là. Remarquez comment dans les diagrammes, la grille de GridLayout s'accroche aux tailles des différentes vues à l'intérieur de celle-ci. Si vous vouliez absolument utiliser GridLayout au lieu de TableLayout pour accomplir la mise en page que vous décrivez de toute façon, une solution (légèrement hackish) serait de simplement créer 9 copies d'une vue fixe, les définir sur (largeur disponible/3) x (hauteur disponible/3) et ajoutez-les comme enfants au GridLayout. Mais, une fois de plus, ce n'est pas le cas pour GridLayout.

+0

Eh bien, j'ai vu le blog. Mes premiers essais étaient basés sur cela. Mon concept pour le gridlayout n'est pas vraiment ce qui est dans Android en ce moment. Il y a un gridlayout créé par guy romain pour son application photostream qui fait exactement ce que je voulais. http://code.google.com/p/apps-for-android/source/browse/trunk/Photostream/src/com/google/android/photostream/GridLayout.java. Mais il y a quelques problèmes im essayant de comprendre. Je suppose que je dois faire une autre question. Merci pour l'aide. – blessenm

+0

J'essayais de faire une chose similaire avec GridLayout, parce que (AFAICT) TableLayout n'autorise pas une vue à s'étendre sur des lignes. Je vais voir si je peux le faire fonctionner en mettant un espace dans chaque cellule. – benkc

+0

BTW, tout en utilisant des vues Espace définies à des hauteurs constantes comme celles-ci conservent des vues plus petites que la grille désirée alignées correctement sur la grille, elle n'empêche pas les vues d'être plus grandes que l'espace que vous essayez d'allouer à eux, bousculant d'autres vues sur les bords droit/bas. – benkc

0

Ci-dessous le code a fonctionné pour moi

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_column="0" 
android:layout_columnSpan="1" 
android:layout_gravity="fill" 
android:layout_rowSpan="1"