Horizontalement centre de Vues à l'intérieur de Android GridLayout
On écrit une application ciblant ICS+ et croire un GridLayout est la meilleure disposition de paradigme, mais il semble très peu a été écrit à ce sujet, et nous sommes d'avoir quelques problèmes d'alignement.
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row_background"
android:rowCount="1"
android:columnCount="3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:useDefaultMargins="true"
android:background="@drawable/list_item_bg">
<ImageView
android:id="@+id/visibilityIcon"
android:layout_row="0"
android:layout_column="0"
android:src="@drawable/visibility_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<ImageView
android:id="@+id/windIcon"
android:layout_row="0"
android:layout_column="1"
android:src="@drawable/wind_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<ImageView
android:id="@+id/crosswindIcon"
android:layout_row="0"
android:layout_column="2"
android:src="@drawable/cloud_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
</GridLayout>
Cependant, la gauche 2 icônes sont alignés à gauche et le plus à droite de l'icône de centres avec le reste de l'espace.
Essentiellement ce que nous devons faire est de spécifier la taille de chaque colonne à 1/3 (depuis 3 colonnes), de la taille totale de l'écran. Je pensais que c'est ce que GridLayout, mais il apparaît "wrap_content" causes de ce comportement (logique), mais "match_parent" causes de la première colonne à remplir la totalité de l'écran, plutôt que de remplir sa cellule ce qui est le comportement que je serais attendu.
Il semble que nous avons essayé toutes les combinaisons de gravité, layout_gravity, etc., mais nous sommes fondamentalement sont en train de faire quelque chose de mal, ou qui ont trouvé une limitation de la GridLayout.
Merci pour votre aide!
OriginalL'auteur RealCasually | 2012-09-11
Vous devez vous connecter pour publier un commentaire.
Une seule ligne et une seule colonne est permis de grandir dans un GridLayout, et qui est celui de la gravité le long de cet axe. Si plus d'une ligne ou d'une colonne de spécifier la gravité seule volonté de l'obtenir (si je me souviens c'est le "dernier"). Choisissez un autre modèle ou écrire votre propre. Si vous voulez seulement une ligne avec égalité des icônes vous pouvez utiliser un LinearLayout où les largeurs des composants sont 0px et le poids sont tous les mêmes, par exemple 1.
Comme avec beaucoup de choses avec Android il était à l'essai et de l'erreur et de la lecture de la source 😉 Mais effectivement, il existe une section dans les docs appelle les Limitations, avec les phrases suivantes: "GridLayout ne fournit pas de support pour le principe de poids, tel que défini dans le poids. En général, il n'est donc pas possible de configurer un GridLayout pour distribuer l'excédent de l'espace entre plusieurs composants."
Merci. Je sais que je suis de s'écarter de la question initiale, ici-mais qui est le "poids" dans un LinearLayout le concept, je suis probablement en train de chercher? Mon objectif est de répartir ces icônes de l'écran avec une quantité égale d'espacement.
Oui c'est sûr 🙂
Y compris ce lien utile sur LinearLayouts et poids pour la postérité: joseluisugia.wordpress.com/2012/01/19/...
OriginalL'auteur Tobias Ritzau