web-dev-qa-db-fra.com

Comment pouvons-nous changer la largeur / le remplissage d'un Flutter DropdownMenuItem dans un Dropdown?

Dans Flutter, je peux créer une liste déroulante avec DropdownMenuItems, comme ceci: enter image description here

Les DropdownMenuItems que j'ajoute sont toujours plus larges que la liste déroulante elle-même:

enter image description here

Comment ajustez-vous la largeur de DropdownMenuItem ou supprimez le rembourrage horizontal supplémentaire?

Mon widget DropdownMenuItem ressemble à ceci:

DropdownMenuItem(
    value: unit.name,
    child: Text('hey'),
);

alors que mon widget Dropdown ressemble à ceci:

return Container(
    width: 300.0,
    child: DropdownButtonHideUnderline(
      child: DropdownButton(
        value: name,
        items: listOfDropdownMenuItems,
        onChanged: onChanged,
        style: Theme.of(context).textTheme.title,
      ),
    ),
);
9
Mary

Cette fonctionnalité a été ajoutée. Voir https://github.com/flutter/flutter/pull/14849

Vous pouvez maintenant l'envelopper dans un ButtonTheme et définir alignedDropdown sur true.

return Container(
    width: 300.0,
    child: DropdownButtonHideUnderline(
      child: ButtonTheme(
        alignedDropdown: true,
          child: DropdownButton(
            value: name,
            items: listOfDropdownMenuItems,
            onChanged: onChanged,
            style: Theme.of(context).textTheme.title,
         ),
      ),
    ),
);
20
Mary

J'ai résolu ce problème en remplaçant isExpanded par true;

return Container(
    width: 300.0,
    child: DropdownButtonHideUnderline(
      child: DropdownButton(
        isExpanded: true,
        value: name,
        items: listOfDropdownMenuItems,
        onChanged: onChanged,
        style: Theme.of(context).textTheme.title,
      ),
    ),
);
2
malibayram91