Flutter 给控件加圆角

作者: 周南城 | 来源:发表于2018-07-20 16:36 被阅读89次

前言

今天有一小哥哥,想做一个带圆角的按钮,试了好几个,最后选择了iOS风格的CupertinoButton,是因为其他Button,好像都不能直接设置radius。我其实当时学习其他控件的时候也想过设置圆角这事儿来着。今天偶然看到了一个解决办法,还顺便解决了我一直想给图片加圆角的问题,以下做个笔记

直接上代码

方法一

在你要加圆角的控件外层嵌套一层new Material

比如

RaisedButton

new Material(
    child: new RaisedButton(
        onPressed: () {},
        color: Colors.red[300],
        child: new Text(
            "RaisedButton",
            style: new TextStyle(color: Colors.white),
            ),
        ),
    borderRadius: BorderRadius.circular(20.0),
    shadowColor: Colors.grey,
    elevation: 5.0,
)
image

Image

new Material(
    child: new Image(
        image: new NetworkImage(//从网络加载图片并缓存在内存中
            "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3882265467,3924971696&fm=27&gp=0.jpg"),
        width: 200.0,
        height: 200.0,
        fit: BoxFit.cover,
    ),
    borderRadius: BorderRadius.circular(80.0),
)
image

不过图片的圆角好像有锯齿啊,疑惑。。。。还有就是,如果你想要一个正圆的图片的话可以直接用CircleAvatar的哟。然后如果你还想改按钮的尺寸(好像在源码中没有看到可以修改尺寸的属性)的话,在外层嵌套一个new SizedBox即可

方法二

使用装饰器

比如

Container(
                width: 300.0,
                height: 150.0,
                decoration: BoxDecoration(
                  image: DecorationImage(
                    image: AssetImage("assets/images/illustration_16.jpg"),
                    fit: BoxFit.cover,
                  ),
                  borderRadius: BorderRadius.all(
                    Radius.circular(10.0),
                  ),
                ),
              )
image

正圆除了用CircleAvatar实现,shape也是可以实现的:

Container(
                width: 200.0,
                height: 200.0,
                decoration: BoxDecoration(
                  image: DecorationImage(
                    image: AssetImage(
                      'assets/images/illustration_17.jpg',
                    ),
                    //从Assets加载图片
                    fit: BoxFit.cover,
                  ),
                  shape: BoxShape.circle,
                ),
              ),
image

应该还有好多其他的办法的噢,如果你知道其他办法的话,可以评论告诉我噢

我也不知道这样做有没有什么问题,反正先这么做着,遇到了问题再解决就是了

相关文章

网友评论

  • 淹死的鱼_8d56:可以通过shape,decorate属性设置,外部直接套一层container,设置decorate就行,另外系统提供了许多shape具体可以自己查文档
    周南城:@淹死的鱼_8d56 嗯嗯,好的,多谢,原来真的有好多方法

本文标题:Flutter 给控件加圆角

本文链接:https://www.haomeiwen.com/subject/jnjqmftx.html