Ajouter par programme TextView à la Grille de Mise en page d'alignement ne sont pas propres
Salut, je suis en train d'ajouter TextView avec drawableLeft à GridLayout.
Je suis en ajoutant ce TextView dans une Boucle. Le TextView se sont ajoutés correctement mais les sont pas correctement alignées. Chaque textview devrait prendre une largeur égale à une ligne horizontale qui n'est pas le cas.
Voici le code, je suis en utilisant
GridLayout gridLayout = new GridLayout(getContext());
gridLayout.setAlignmentMode(GridLayout.ALIGN_BOUNDS);
gridLayout.setColumnCount(2);
gridLayout.setRowCount(3);
TextView titleText;
for (int i = 0; facilities != null && i < facilities.size(); i++) {
titleText = new TextView(getContext());
titleText.setText(facilities.get(i));
gridLayout.addView(titleText, i);
titleText.setCompoundDrawablesWithIntrinsicBounds(rightIc, 0, 0, 0);
}
Vous devez vous connecter pour publier un commentaire.
Pour cela, vous devez définir dynamiquement la largeur de la colonne pour la vue. Ce qui, finalement, de les aligner les uns s'afficher correctement avec une quantité égale de l'espace.
En fait, c'est la colonne et le nombre de lignes. J'ai re wrotten complète de la logique
C'est peut être à cause de votre dynamique de la longueur du texte n'est pas fixé de sorte que chaque textview pas prendre le même espace Cochez cette
textedetitre .setLayoutParams(nouveau LinearLayout.LayoutParams(0, hauteur, hauteur));
L'exemple de code suivant doit donner à chaque affichage du texte de la même hauteur et la largeur, et de l'ordre de la TextViews de gauche à droite puis de haut en bas.
Le plus difficile est de prévoir expressément que le GridLayout.LayoutParams, réglage de la hauteur/largeur de 0 et de définir la ligne/colonne specs avec des poids fixé à 1, de sorte que la hauteur et la largeur sera automatiquement calculés en fonction du poids.
Également remarquer-je choisir le nombre de lignes en fonction du nombre d'établissements, de sorte que si votre liste grandit, vous aurez plus de lignes.