Maison >Java >javaDidacticiel >Comment obtenir une disposition de saut de ligne pour les widgets sous Android ?

Comment obtenir une disposition de saut de ligne pour les widgets sous Android ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-08 03:01:02201parcourir

How to Achieve Line-Breaking Layout for Widgets in Android?

Disposition des widgets de saut de ligne pour Android

Dans ce scénario, vous cherchez à créer une mise en page dans laquelle les widgets représentant des données textuelles peuvent être disposés dans une manière de saut de ligne, similaire au formatage du texte. L'objectif est d'éviter le débordement horizontal et d'assurer un habillage correct de la séquence de widgets pour qu'elle s'adapte à l'espace disponible.

Le code fourni dans la question tente d'obtenir un habillage de mots en utilisant des dispositions et des marges linéaires, mais ce n'est finalement pas le cas. remplir le comportement souhaité. Pour obtenir le résultat souhaité, une mise en page personnalisée est nécessaire.

Voici comment créer un ViewGroup personnalisé qui gère les sauts de ligne pour les widgets :

public class PredicateLayout extends ViewGroup {

    // Stores the height of each line
    private int line_height;

    // Override measurement methods to calculate layout dimensions
    @Override
    protected void onMeasure(...) {
        // Calculate the layout dimensions based on child views and available space
        // Set appropriate dimensions for the layout
    }

    // Override the onLayout method to position child views
    @Override
    protected void onLayout(...) {
        // Iterate through child views and position them accordingly, handling line breaks
    }
}

Utilisation :

  1. Créez une instance de PredicateLayout dans votre activité ou votre mise en page XML.
  2. Ajoutez des vues enfants à la mise en page, représentant les éléments de texte (dans ce cas, les widgets TextView).
  3. La mise en page organisera automatiquement les vues des enfants de manière à sauter les lignes, en les retournant si nécessaire pour les adapter à l'espace disponible.

Résultat :

Le PredicateLayout personnalisé résout le problème du débordement horizontal et fournit des capacités de saut de ligne pour les widgets, ce qui donne une mise en page qui imite visuellement le retour à la ligne de texte.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn