关于Flutter按钮Shape设置及效果

10,307 阅读1分钟

一个老实的程序猿,都是直接进入主题:

Button 设置效果 和 一些样式类使用

BorderSide 内得设置

style: BorderStyle.none 设置颜色 是无效得

style: BorderStyle.solid 设置延是是有效得

ShapeBorder类的使用

BoxBorder 可以绘制为矩形、圆形或圆形的框边框的基类

源码:abstract class BoxBorder extends ShapeBorder 不能实现

BeveledRectangleBorder 扁平或“斜角”角的矩形边框

avatar

          new Center(
            child: new Container(
              width: 300.0,
              height: 48.0  ,
              child: new RaisedButton(onPressed: (){

              },color: Colors.grey,
                child: new Text("登陆"),

              shape: new BeveledRectangleBorder(borderRadius: BorderRadius.circular(20.0),side: new BorderSide(
                style: BorderStyle.none,
              )),
              ),
            )
          ),

CircleBorder 可用空间内适合圆的边界

显示圆的Button

new Center(
    child: new Container(
        width: 300.0,
        height: 80.0  ,
        child: new RaisedButton(onPressed: (){

        },color: Colors.grey,
            child: new Text("登陆"),
            //shape:new RoundedRectangleBorder(borderRadius: BorderRadius.circular(20.0)) ,
            shape: new CircleBorder(side: new BorderSide(
            //设置 界面效果
            color: Colors.green,
            width: 80.0,
            style: BorderStyle.none,
         ),),
        ),
     )
),

StadiumBorder 半圆角矩形(StadiumBorder 翻译:像体育场形状的边框)

avatar

如上图 属性 color: Color(0xffFF7F24), 得效果 配合 style: BorderStyle.solid,

          new Center(
            child: new Container(
              width: 300.0,
              height: 48.0  ,
              child: new RaisedButton(onPressed: (){

              },color: Colors.grey,
                child: new Text("登陆"),
              shape: new StadiumBorder(side: new BorderSide(
                style: BorderStyle.solid,
                color: Color(0xffFF7F24),
              )),
              ),
            )
          ),

RoundedRectangleBorder 半圆角的矩形边框

如果 RoundedRectangleBorder 设置了属性(borderRadius: BorderRadius.circular(20.0)) 就和 StadiumBorder 差不多得形状 (半圆角矩形)

然后通过shape属性的 RoundedRectangleBorder 对圆角进行设置,如下:

 new Center(
    child: new Container(
        width: 300.0,
        height: 48.0  ,
        child: new RaisedButton(onPressed: (){

        },color: Colors.grey,
            child: new Text("登陆"),
            shape:new RoundedRectangleBorder(borderRadius: BorderRadius.circular(20.0)) ,

       ),
    )
),