Flutter 给容器圆角边框

Posted

技术标签:

【中文标题】Flutter 给容器圆角边框【英文标题】:Flutter give container rounded border 【发布时间】:2020-01-06 17:14:27 【问题描述】:

我正在制作Container(),我给了它一个边框,但如果有圆形边框会很好。

这就是我现在拥有的:

Container(
      width: screenWidth / 7,
      decoration: BoxDecoration(
        border: Border.all(
          color: Colors.red[500],
        ),
      ),
      child: Padding(
        padding: EdgeInsets.all(5.0),
        child: Column(
          children: <Widget>[
            Text(
              '6',
              style: TextStyle(
                  color: Colors.red[500],
                  fontSize: 25),
            ),
            Text(
             'sep',
              style: TextStyle(
                  color: Colors.red[500]),
            )
          ],
        ),
      ),
    );

我尝试将ClipRRect 放在上面,但这会将边框剪掉。有解决办法吗?

【问题讨论】:

【参考方案1】:

尝试使用来自BoxDecoration 的属性borderRadius

类似

Container(
  decoration: BoxDecoration(
    border: Border.all(
      color: Colors.red[500],
    ),
    borderRadius: BorderRadius.all(Radius.circular(20))
  ),
  child: ...
)

【讨论】:

BorderRadius.circular(20) 可以用作BorderRadius.all(Radius.circular(20))的简写【参考方案2】:

让它完全循环:

Container(
      decoration: BoxDecoration(
        shape: BoxShape.circle,
      ),
    )

在选定的点使其成为一个圆圈:

Container(
      decoration: BoxDecoration(
        borderRadius: BorderRadius.only(
            topRight: Radius.circular(40.0),
            bottomRight: Radius.circular(40.0),
            topLeft: Radius.circular(40.0),
            bottomLeft: Radius.circular(40.0)),
      ),
      child: Text("hello"),
    ),

  Container(
      decoration: BoxDecoration(
        borderRadius: BorderRadius.all(Radius.circular(20)),
      ),
      child: ...
    )

【讨论】:

【参考方案3】:

你可以这样使用。如果你想要所有角落的边框,你可以像下面这样使用。

Container(
  decoration: BoxDecoration(
    color: Colors.white,
    borderRadius: BorderRadius.all(
      Radius.circular(12.0),
    ),
  ),
),

如果您只希望选定边的圆形边框,您可以使用如下所示。

Container(
  decoration: BoxDecoration(
    color: Colors.white,
    borderRadius: BorderRadius.only(
      topLeft: Radius.circular(10),
      topRight: Radius.circular(10),
    ),
  ),
  child: Text('Text'),
),

【讨论】:

【参考方案4】:

上述答案的增强。

Container(
  decoration: BoxDecoration(
    border: Border.all(
      color: Colors.red[500],
    ),
   borderRadius: BorderRadius.circular(20) // use instead of BorderRadius.all(Radius.circular(20))
  ),
  child: ...
)

【讨论】:

请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更高,更有可能吸引投票。 对不起,我错过了。【参考方案5】:

你可以使用ClipRRect小部件:

ClipRRect (
  borderRadius: BorderRadius.circular(5.0),
  child: Container(
                    height: 25,
                    width: 40,
                    color: const Color(0xffF8742C),
                    child: Align(
                        alignment: Alignment.center,
                        child: Text("Withdraw"))),
          )

【讨论】:

【参考方案6】:

要制作一个完整的圆,只需使用 shape 属性:

Container(
   padding: const EdgeInsets.all(4),
   decoration: BoxDecoration(
     shape: BoxShape.circle,
     color: Colors.black,
   ),                            
   child: Icon(
      Icons.add,
      size: 15.0,
      color: Colors.white,
     ),
                               
                                

【讨论】:

【参考方案7】: 容器( 装饰:盒子装饰( 边界半径:边界半径.圆形(20.0), 边框:边框.all( 颜色:HexColor('#C88A3D'), 宽度:3.0 ) ), 孩子:容器( 装饰:新盒子装饰(边框半径: BorderRadius.circular(20.0), 颜色:Colors.white,), ) ),

【讨论】:

【参考方案8】:

这里的关键是添加一个BorderRadius

Container(    
  decoration: BoxDecoration(
    border: Border.all(
      color: Colors.red[340],
     ),
     borderRadius: BorderRadius.all(Radius.circular(35),
   ),
   child: `enter code here`
),

【讨论】:

虽然此代码可能会为问题提供解决方案,但最好添加有关其工作原理/方式的上下文。这可以帮助未来的用户学习并最终将这些知识应用到他们自己的代码中。解释代码时,您也可能会得到用户的积极反馈/赞成。【参考方案9】:

只要把它放在 Container

Container(
  decoration: BoxDecoration(
    borderRadius: BorderRadius.all(Radius.circular(30))
  ),
)

【讨论】:

以上是关于Flutter 给容器圆角边框的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 问题系列第 49 篇在 Flutter 中如何给组件设置背景色圆角边框形状阴影渐变色背景图片等效果

Flutter MaterialButton 实现圆角边框按钮

Flutter MaterialButton 实现圆角边框按钮

Flutter 如何新增圆角与边框

Flutter之Decoration(边框圆角阴影形状渐变背景图像等)

Flutter 圆角矩形中的阴影