Disposition de widget de saut de ligne pour Android : une mise en page personnalisée pour emballer les widgets
Problème :
Cette question répond au besoin d'une mise en page qui affiche une séquence de widgets dans un format enveloppé, similaire à la façon dont le texte est présenté sur un écran. L'espace horizontal disponible est insuffisant pour accueillir tous les widgets sur une seule ligne, la mise en page doit donc envelopper ces "phrases" à la ligne suivante.
Solution :
Le le code fourni démontre la création d'une mise en page personnalisée appelée "PredicateLayout" qui répond à cette exigence :
public class PredicateLayout extends ViewGroup {...}
Cette mise en page organise efficacement les widgets enfants de la même manière que le texte, en les affichant une ligne à la fois et en les enveloppant de manière transparente aux lignes suivantes si nécessaire.
Points forts de la mise en œuvre :
La mise en œuvre implique de remplacer les méthodes suivantes pour définir le comportement de la mise en page :
Résultat :
Le PredicateLayout personnalisé résout le problème en permettant aux widgets d'être disposés de manière à sauter la ligne, de la même manière que le texte est affiché. La disposition résultante ressemble visuellement au comportement souhaité des widgets encapsulés :
[Hello] [Hello] [Hello] [Hello] [Hello] [Hello] [Hello] [Hello] [Hello]
Informations supplémentaires :
Cette solution est une preuve de concept et peut bénéficier d'améliorations supplémentaires. Les commentaires et suggestions sont les bienvenus. La mise en page XML et le code de PredicateLayout sont fournis pour une implémentation facile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!