Après avoir créé un résultat attendu strong> p> Blueprint attendu ( linearlayout code> avec
imageview code> S comme ses enfants, j'ai remarqué que seule la première rangée d'articles est affichée. Je pensais que le
linearlayout code> envelopperait automatiquement ses enfants sur une nouvelle ligne si nécessaire? La largeur semble bien mais pas la hauteur.
imageview code> Note n'est pas à échelle) strong> p>
Pour une raison quelconque, lorsque je crée une linearlayout à l'intérieur d'une autre vue, la largeur est montrée correctement, mais elle ne semble jamais ajuster sa hauteur pour s'adapter et afficher tous les enfants à l'intérieur. P>
3 Réponses :
Un linearlayout horizontal n'enveloppera pas automatiquement à une deuxième ligne pour s'adapter aux enfants. Par la documentation Android, il ne prend en charge qu'une seule direction: P>
linearlayout est un groupe de vue qui aligne tous les enfants d'un seul direction, verticalement ou horizontalement p> blockQuote>
Ce que vous pourriez faire est d'utiliser Flexbox-Disposition pour obtenir le comportement d'emballage. p>
Ne faites pas de linearlayout horizontal avec 6 ImageView's's P>
Faites de nouveaux linearlayout verticaux et mettez-la à deux dispositions linéaires horizontales pour chacune 3 imageView. P>
Ce comportement de Puisque tout l'enfant pour enfant linearlayout code> est "comme prévu": il affichera ses enfants dans une ligne horizontale ou verticale. P>
Voir code> S dans votre plan de plan semble être de taille similaire, envisager de passer à
Gridlayout code>, il est disponible en tant que bibliothèque Androidx (par exemple, em> androidx.gridlayout: gridlayout: 1.0.0 em>). P>
affichage code> s avec des dimensions variables,
flexboxlayout code> est une bonne alternative. Il a été introduit dans un Publication du blog dans Février 2017. Il existe une version pour Androidx disponible: 'com.google.androidherHFlex:1.1.0' em> p>