Android GridLayout obtenir ligne/colonne
J'ai un 3x3 GridLayout avec des boutons. Ces boutons ont un onTileClicked() auditeur. Maintenant, je veux obtenir la position de l'cliqué sur le bouton dans la grille. Voici mon code:
public void onTileClicked(View view) {
Button button = (Button) view;
GridLayout.LayoutParams params = (LayoutParams) button.getLayoutParams();
}
Mais comment puis-je obtenir la ligne et la colonne de l'cliqué bouton? Il est params.columnSpec mais je ne sais pas quoi faire avec ce...
OriginalL'auteur VoidCatz | 2014-04-18
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de moyen direct d'obtenir la position de la cellule. Cependant, vous pouvez calculer la position de l'cliqué bouton en supposant que vous savez le nombre de colonnes et de lignes dans le onItemClick auditeur:
OriginalL'auteur AmmarCSE
Merci pour votre réponse AmmarCSE, mais j'ai résolu le broblem il vous suffit de faire quelque chose comme ceci:
OriginalL'auteur VoidCatz
Ce peut-être vieux, mais j'ai aussi cherché une solution et n'a toujours pas trouver.
J'avais besoin de faire plusieurs lignes de touche, selon les utilisateurs de choix pour un jeu. À l'aide de l'ID n'est pas possible car le nombre de boutons peut varier de 2x2 à 9x9.
Mon bouton n'a pas besoin d'avoir une légende, voici donc ce que j'ai fait:
Bien sûr, cela ne fonctionnera pas si vous avez besoin d'un texte sur votre bouton. Vous pourriez peut-être utiliser un tag?
OriginalL'auteur LSV
Je suis confronté au même problème et actuellement la seule solution qui me rend à l'aise est de modifier la classe et ajouter toutes les informations dont vous avez besoin.
Mon exemple est
Et maintenant, nous pouvons utiliser cette fonctionnalité supplémentaire. On peut aussi réécrire le setLayoutParams et intégrer les setPosInGrid ().
Aucune modification d'autres codes sauf si vous souhaitez qu'un ordinaire ImageView suffit d'utiliser l'identifiant complet ", sam.widget de.ImageView".
OriginalL'auteur Xavier Xing