139 votes

Créez un bouton avec une bordure arrondie

Comment ferais-tu un FlatButton en un bouton avec une bordure arrondie ? J'ai la forme de la bordure arrondie en utilisant RoundedRectangleBorder mais il faut en quelque sorte colorer la bordure.

new FlatButton(
  child: new Text("Button text),
  onPressed: null,
  shape: new RoundedRectangleBorder(borderRadius: new BorderRadius.circular(30.0))
)

Exemple de l'aspect d'un bouton arrondi : image

245voto

Rémi Rousselet Points 45139

Utilisez OutlinedButton au lieu de FlatButton .

OutlinedButton(
  onPressed: null,
  style: ButtonStyle(
    shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0))),
  ),
  child: const Text("Button text"),
);

0 votes

Il manque un guillemet fermant après "texte des boutons".

9 votes

@RemiRousselet comment puis-je changer la couleur de la bordure ?

0 votes

@Farhana dans Flutter quand onPressed: null cela signifie que le bouton est désactivé, il suffit de faire quelque chose avec onPressed et la couleur s'affichera.

89voto

wizmeaaaa Points 71
FlatButton(
          onPressed: null,
          child: Text('Button', style: TextStyle(
              color: Colors.blue
            )
          ),
          textColor: MyColor.white,
          shape: RoundedRectangleBorder(side: BorderSide(
            color: Colors.blue,
            width: 1,
            style: BorderStyle.solid
          ), borderRadius: BorderRadius.circular(50)),
        )

15 votes

FlatButton, RaisedButton et OutlineButton ont été remplacés respectivement par TextButton, ElevatedButton et OutlinedButton.

58voto

Ahmed Points 784

Utilisez StadiumBorder forma

OutlineButton( onPressed : () {}, enfant : Text("Follow"), borderSide : BorderSide(color : Colors.blue), shape : StadiumBorder(), )

10 votes

Pour ceux qui ne le savent pas, un StadiumBorder est une boîte avec des demi-cercles à l'extrémité (comme une piste dans un stade, je suppose).

0 votes

Vous pouvez également essayer ceci :shape : new RoundedRectangleBorder(borderRadius : new BorderRadius.circular(30.0)),

23voto

Optimoose Points 51

J'ai donc fait le mien avec le style complet et les couleurs de la bordure comme ceci :

new OutlineButton(
    shape: StadiumBorder(),
    textColor: Colors.blue,
    child: Text('Button Text'),
    borderSide: BorderSide(
        color: Colors.blue, style: BorderStyle.solid, 
        width: 1),
    onPressed: () {},
)

2 votes

Une solution simple et élégante !

22voto

cindy Points 334
new OutlineButton(  
 child: new Text("blue outline") ,
   borderSide: BorderSide(color: Colors.blue),
  ),

// this property adds outline border color

8 votes

Si quelqu'un se demande pourquoi la couleur n'apparaît pas, dans mon cas c'est parce que vous devez passer un onPress non nul.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X