2012-10-20 5 views
1

Je développe une application et je voudrais avoir 12 ImageButtons (3 x 4). centré dans l'écran Android et la section centrale de l'écran où les boutons Image sont situés pour avoir un fond de couleur ou de gradient.Android est-il préférable d'utiliser un TableLayout ou GridView

Est-il préférable de le faire avec un TableLayout ou un GridView ... ou peut-être quelque chose d'autre. Je suis un débutant à Mono et Android donc toute aide est appréciée. J'espérais faire la plupart de la mise en page dans le concepteur, mais je ne suis pas sûr de la meilleure approche.

Quelqu'un peut-il me diriger dans la bonne direction?

Répondre

1

Je pense que GridView est préférable d'utiliser car il prend en charge le recyclage des vues. En cas de TableLayout toutes les vues restent en mémoire. Si le nombre de boutons augmente, GridView prendra soin de lui. Assurez-vous que vous implémentez correctement le recyclage des vues, sinon vous risquez d'avoir une fuite de mémoire.

0

S'il n'y a que 12 boutons, un TableLayout serait probablement plus simple à implémenter car vous n'avez pas à jouer avec l'adaptateur. Si vous avez besoin de faire défiler ou si le nombre de boutons peut augmenter avec le temps, vous feriez probablement mieux d'utiliser GridView.

Vous pouvez regarder dans le GridLayout dans la bibliothèque de support Android v7. C'est un peu comme le TableLayout mais il semble plus simple de faire des choses comme un simple bouton dans un certain nombre de colonnes.

+0

Je l'ai implémenté en utilisant un TableLayout, mais je n'arrive pas à comprendre comment mettre un arrière-plan derrière la zone du bouton. Est-ce que cela peut être fait avec un TableLayout? – LilMoke

+0

si la zone du bouton est une ligne entière, définissez l'attribut d'arrière-plan sur le tablerow – toadzky