1
votes

Comment aligner verticalement ListView au milieu

Je veux mon élément de liste au milieu de la ListView

@override Widget build(BuildContext context)
{
    List<String> listName = ['Woody', 'Buzz', 'Rex'];

    return Container
    (
      decoration: BoxDecoration(border: Border.all(color: Colors.pinkAccent)),
      width: 400,
      height: 700,
      alignment: Alignment.centerLeft,
      child: ListView.builder
      (
        itemCount: listName.length,
        itemBuilder: (context, index)
        {
          return OurName(listName[index]);
        },
      ),
    );
}

C'est quand j'utilise shrinkWrap , quand je fais défiler vers le haut c'est coupé et ça ne peut pas être défilé shrinkWrap

Voici ce à quoi je m'attendais attendu


0 commentaires

3 Réponses :


2
votes

La clé de votre problème est la propriété shrinkWrap de ListView . Donc, pour résoudre ce problème, vous pouvez faire quelque chose comme ceci:

Container(
        alignment: Alignment.centerLeft,
        child: ListView.builder(
          itemBuilder: (context, index) {
            return Text("The index$index");
          },
          shrinkWrap: true,
          itemCount: 30,
        ),
      ),


2 commentaires

si j'utilise shrinkwrap , la hauteur de ma ListView n'est plus de 700 ou aussi haute que l'écran


@cyclick Vous pouvez définir la hauteur du conteneur à 700 et le résultat sera le même et la liste mettra à jour la hauteur en fonction du contenu avec une hauteur maximale égale à la hauteur du conteneur.



0
votes

Je ne comprends pas ce que vous voulez dire voulez-vous aligner toute la liste, puis utiliser un widget central et aligner la liste au centre, ou utiliser le widget Aligner et l'aligner manuellement par

Align(
  alignment: Alignment.centerRight,
  child: //here your list,
)

si ce n'est pas ce que vous voulez ou ne fait pas le travail, veuillez en expliquer davantage.


5 commentaires

ce que je veux centrer est l'élément dans la liste


Je ne vois vraiment pas la nécessité de le faire, mais une question en tête pour vous aider à mieux y a-t-il d'autres éléments dans la liste?


@danypata c'est ce à quoi je m'attendais lien , je n'ai aucun problème à le faire en plumes < a href = "https://feathersui.com" rel = "nofollow noreferrer"> link (AS3), je veux porter mon application pour flutter


stackoverflow.com/ questions / 52991376 /…


est-ce que tu cherches?



1
votes

Pour moi fonctionne ce code!

@override
  Widget build(BuildContext context) {
    return Container(
      height: double.infinity,
      width: double.infinity,
      alignment: Alignment.center,
      child: ListView.builder(
          shrinkWrap: true,
          itemCount:rows.length,
          itemBuilder: (
            context,
            index,
          ) {
            return ...;
          }),
    );
  }


0 commentaires