2
votes

Comment remplir la ligne avec deux boutons?

Comment faire en sorte que deux boutons s'étendent de manière égale sur toute la largeur du tiroir de navigation?


 Réel vs obligatoire


1 commentaires

Je comprends que c'est votre première question dans le débordement de pile, cependant, pour vous aider, vous devez fournir des informations supplémentaires - comme quelle plate-forme, quelle disposition est utilisée pour le parent, etc.


4 Réponses :


-1
votes

Vous pouvez envelopper chaque bouton avec Expanded.

Row(
children : <Widget>[
 Expanded(
    child: Button(
            child: Text("Clear")
           )
         ),
Expanded(
    child: Button(
            child: Text("Filter")
           )
         ),
])


0 commentaires

1
votes

Cela a fonctionné pour moi

Row(
              children: <Widget>[
                RaisedButton(
                  onPressed: () {
                    Route route =
                        MaterialPageRoute(builder: (context) => MinionFlare());
                    Navigator.push(context, route);
                  },
                  child: SizedBox(
                    width: MediaQuery.of(context).size.width * 0.4,
                    child: Text("Minion"),
                  ),
                ),
                RaisedButton(
                  onPressed: () {
                    Route route = MaterialPageRoute(
                        builder: (context) => EmojiRatingBar());
                    Navigator.push(context, route);
                  },
                  child: SizedBox(
                      width: MediaQuery.of(context).size.width * 0.4,
                      child: Text("Emoji")),
                ),
              ],
            ),


0 commentaires

8
votes

L'essentiel sera

class SO extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      drawer: Drawer(
        child: ListView(
          padding: EdgeInsets.zero,
          children: <Widget>[
            DrawerHeader(
              child: Text('Drawer Header'),
              decoration: BoxDecoration(
                color: Colors.blue,
              ),
            ),
            ListTile(
              title: Text('Item 1'),
              onTap: () {
                // Update the state of the app
                // ...
              },
            ),
            ListTile(
              //contentPadding: EdgeInsets.all(<some value here>),//change for side padding
              title: Row(
                children: <Widget>[
                  Expanded(child: RaisedButton(onPressed: () {},child: Text("Clear"),color: Colors.black,textColor: Colors.white,)),
                  Expanded(child: RaisedButton(onPressed: () {},child: Text("Filter"),color: Colors.black,textColor: Colors.white,)),
                ],
              ),
            )
          ],
        ),
      ),
    );
  }
}


Code complet

        ListTile(
          title: Row(
            children: <Widget>[
              Expanded(child: RaisedButton(onPressed: () {},child: Text("Clear"),color: Colors.black,textColor: Colors.white,)),
              Expanded(child: RaisedButton(onPressed: () {},child: Text("Filter"),color: Colors.black,textColor: Colors.white,)),
            ],
          ),
        )


1 commentaires

Si vous ne voulez pas d'espacement sur les côtés, alors 1. Supprimez le ListTile entourant la Row ou 2. Définissez le contentPadding de < code> ListTile si nécessaire. qui est la manière préférée.



0
votes
Container(
            height: 100,
            child: Row(
              children : <Widget>[
              Expanded(
                  child: RaisedButton(
                          onPressed: () {},
                          color: Color(0xff0000ff),
                          child: Text("Left Button", style: TextStyle(color: Colors.white),)
                        )
                      ),
              Expanded(
                  child: RaisedButton(
                          onPressed: () {},
                          color: Color(0xffd4d4d4),
                          child: Text("Right Button")
                        )
                      ),
              ])
          )

1 commentaires

Utilisez un widget étendu dans un widget de ligne comme illustré ci-dessus