J'ai J'ai essayé de diminuer la taille de la police, retirez le fond de 9 patch et même enlever toutes les marges. Je pouvais voir juste chiffre7 quand il y avait des marges. Ensuite, je les ai minimisés et je peux voir quatre lignes avec leur premier bouton rendu deux fois plus grand que l'affichage. Je ne comprends pas pourquoi, il doit avoir J'ai essayé de minimiser le code et de la réduire à Qu'est-ce qui se passe là-bas? p> mise à jour: p> Mise à jour 2: p> Nexus 5x a les mêmes problèmes lorsque la police est 38SP ou plus grande. Il est intéressant d'intéresser que le concepteur de studio montre une mise en page correcte, mais les deux appareils / émulateurs affichent une vue corrompue et suivante: p> calc.xml: p> styles: p> dimens: p> Manjunath Prabhakar a déclaré que le problème peut être lié aux poids. J'ai donc essayé de supprimer tous les attributs de poids et que la mise en page ait plus de sens maintenant. Je ne l'ai pas encore réparé cependant. Je envisagerais de réécrire la mise en page à la linearlayouts imbriquée comme un pas en arrière, je fais une prime ouverte pour d'autres suggestions. P> linearlayout code> avec
textview code>,
gridlayout code> et un autre
textview code>. Il est affiché correctement sur de nombreux téléphones et tablettes modernes, mais cela échoue complètement sur un petit affichage comme Nexus S. Voir les images suivantes.
wrap_content code> largeur. P>
gridlayout code> avec une seule ligne et il reste N'apace pas la largeur de l'écran. P>
3 Réponses :
Il y a peu de limitations et de restrictions lors de l'utilisation de la gridlayout. Voici le lien vers Documentation P>
"Gridlayout ne fournit pas de soutien au principe de poids, comme défini en poids. En général, il n'est donc pas possible de Configurez une gridlayout pour distribuer l'espace excédentaire dans le non-trivial proportions entre plusieurs rangées ou colonnes ... pour un contrôle complet sur l'excès de distribution d'espace dans une rangée ou une colonne; utiliser un linearlayout Sous-site pour contenir les composants du groupe de cellules associées. " P> blockQuote>
Si j'étais vous, j'utilisais la mise en page linéaire ou la disposition de la table. P>
J'espère que cela vous aidera! P>
Point intéressant. J'ai essayé de réécrire le code récemment à la contrainteTlayout, mais j'ai échoué complètement. Je pense que la première mise en œuvre utilisait linéarlayout, mais je détestais que la nidification profonde. Gridlayout aurait dû avoir une meilleure performance et consommer moins de ressources.
J'ai retiré tous les attributs de poids et il n'y a pas assez d'espace pour tous les boutons, mais cela semble mieux maintenant. Je vais poster une capture d'écran mise à jour.
@LEOS LITTAK: C'est bon d'entendre que c'est vous aider à résoudre votre problème! J'ai hâte d'avoir de vos nouvelles
Je suppose que c'est un bogue de la version de support de Regardez sur Ceci em> attribué em>): Je pense que cela est lié à votre question sur le comportement de la taille de la police Nexus 5x. En général, j'ai trouvé beaucoup de bugs associés ICI (liée à Je vais essayer de vous donner une solution de contournement . P> J'utilise Je pense que vous pouvez résoudre vos problèmes de mise en page (les deux L'alignement dans les téléphones plus anciens et la taille de la police dans Nexus 5x) faisant de cette manière: p> essentiellement, ce que j'ai fait est d'envelopper chaque groupe de boutons (quatre boutons sauf le Dernière ligne) dans un Ici, vous pouvez voir comment il ressemble à deux téléphones: P> Samsung Galaxy Core Plus (plus vieux)
Comme vous pouvez le constater , il y a un problème dans l'alignement de la dernière ligne. Je pense que vous pouvez essayer de résoudre l'alignement de ces boutons jouant avec les propriétés et les attributs. Faites-moi savoir si vous voulez d'autres améliorations dans ce dernier sujet. P> J'espère que cela aide. P> P> gridlayout code>.
Gridlayout > Mesure de largeur). P>
com.android.supporthgridlayout-v7:25.1.1 code>. p>
linearlayout code>. p>
P>
Merci, je vais essayer!
J'ai eu du temps pour examiner votre réponse complètement. De manière fondamentale, vous proposez de convertir Gridlayout vers un ensemble de linearlayout. Cela fonctionnera mais je ne suis pas très heureux, car j'ai commenté plus tôt à la réponse de Manjunath.
Oui, je sais que cette mise en œuvre n'utilise pas la flexibilité que Gridlayout supposait offrir, ce n'est pas censé être l'une des meilleures approches. Je voulais juste fournir un moyen de contourner les problèmes
Un peu en retard, mais le même problème pourrait être résolu pour moi en définissant Voir P> p> layout_width code> et
layout_height code> des boutons à l'intérieur de la gridlayout (androidx) sur
0DP < / code>.
Je pense que vous devez mettre une disposition séparée pour les périphériques HDPI.
Vrai. Mais je dois le faire fonctionner sur HDPI en premier. Lorsque je supprime les poids, il peut s'afficher correctement mais les cellules n'occupent pas tous les espaces disponibles. Ni la configuration de layout_gravity attribut à Fill_Horizontal | Fill_vertical aide, comme seule la dernière cellule se développe.
Je pense que vous devez faire de vos articles Largeur Match_Parent pour utiliser la meilleure utilisation du poids de la mise en page! Pouvez-vous essayer cela?
Oui je l'ai fait. Le premier bouton avec le parent de correspondance gagne tous les espaces disponibles.