How to set the width of a RaisedButton in Flutter?

后端 未结 20 1907
傲寒
傲寒 2021-01-30 06:01

I have seen that I can\'t set the width of a RaisedButton in Flutter. If I have well understood, I should put the RaisedButton into a SizedBox

相关标签:
20条回答
  • 2021-01-30 06:37

    This piece of code will help you better solve your problem, as we cannot specify width directly to the RaisedButton, we can specify the width to it's child

    double width = MediaQuery.of(context).size.width;
    var maxWidthChild = SizedBox(
                width: width,
                child: Text(
                  StringConfig.acceptButton,
                  textAlign: TextAlign.center,
                ));
    
    RaisedButton(
            child: maxWidthChild,
            onPressed: (){},
            color: Colors.white,
        );
    
    0 讨论(0)
  • 2021-01-30 06:37

    Simply use FractionallySizedBox, where widthFactor & heightFactor define the percentage of app/parent size.

    FractionallySizedBox(
    widthFactor: 0.8,   //means 80% of app width
    child: RaisedButton(
      onPressed: () {},
      child: Text(
        "Your Text",
        style: TextStyle(color: Colors.white),
      ),
      color: Colors.red,
    )),
    
    0 讨论(0)
  • 2021-01-30 06:38

    You need to use an Expanded Widget. But, if your button is on a column, the Expanded Widget fills the rest of the column. So, you need to enclose the Expanded Widget within a row.

    Row(children: <Widget>[
    Expanded(
      flex: 1,
      child: RaisedButton(
        child: Text("Your Text"),
          onPressed: _submitForm,
        ),
      ),),])
    
    0 讨论(0)
  • 2021-01-30 06:40

    If the button is placed in a Flex widget (including Row & Column), you can wrap it using an Expanded Widget to fill the available space.

    0 讨论(0)
  • 2021-01-30 06:44

    you can do as they say in the comments or you can save the effort and work with RawMaterialButton . which have everything and you can change the border to be circular and alot of other attributes. ex shape(increase the radius to have more circular shape)

    shape: new RoundedRectangleBorder(borderRadius: BorderRadius.circular(25)),//ex add 1000 instead of 25
    

    and you can use whatever shape you want as a button by using GestureDetector which is a widget and accepts another widget under child attribute. like in the other example here

    GestureDetector(
    onTap: () {//handle the press action here }
    child:Container(
    
                  height: 80,
                  width: 80,
                  child:new Card(
    
                    color: Colors.blue,
                    shape: new RoundedRectangleBorder(borderRadius: BorderRadius.circular(25)),
                    elevation: 0.0,                
                  child: Icon(Icons.add,color: Colors.white,),
                  ),
                  )
    )
    
    0 讨论(0)
  • 2021-01-30 06:45

    i would recommend using a MaterialButton, than you can do it like this:

    new MaterialButton( 
     height: 40.0, 
     minWidth: 70.0, 
     color: Theme.of(context).primaryColor, 
     textColor: Colors.white, 
     child: new Text("push"), 
     onPressed: () => {}, 
     splashColor: Colors.redAccent,
    )
    
    0 讨论(0)
提交回复
热议问题