Flutter 边框半径不适用于容器小部件内部
边框半径不适用于子Flutter 边框半径不适用于容器小部件内部,flutter,Flutter,边框半径不适用于子容器内部。 尝试使用SizedBox和Stack小部件。 我需要集装箱内的边界视图 Scaffold( appBar: AppBar( title: new Text("ListView"), ), body: Center( child: Padding( padding: EdgeInsets.all(15.0), child: Container( decoration: BoxDec
容器内部。
尝试使用SizedBox
和Stack
小部件。
我需要集装箱内的边界视图
Scaffold(
appBar: AppBar(
title: new Text("ListView"),
),
body: Center(
child: Padding(
padding: EdgeInsets.all(15.0),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0),
border: Border.all(
color: Colors.green,
width: 2.0
)
),
child: Container(
color: Colors.red,
)
),
)
)
)
我猜您的容器可能不可见,因为它没有子级/高度/宽度
尝试将一些文本作为子项添加,或者如果希望它展开,可以使用强制
请参见边框上的示例。用以下内容替换代码
Scaffold(
appBar: AppBar(
title: new Text("ListView"),
),
body: Center(
child: Padding(
padding: EdgeInsets.all(15.0),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0),
border: Border.all(
color: Colors.green,
width: 2.0
)
),
child: Container(
decoration: new BoxDecoration(borderRadius:
BorderRadius.circular(15.0),
color: Colors.red,),
)
),
)
)
)
装饰
画在孩子的后面。如果您希望在容器的子容器前面应用装饰,请使用foregroundevision
脚手架(
appBar:appBar(
标题:新文本(“列表视图”),
),
正文:中(
孩子:填充(
填充:所有边缘设置(15.0),
子:容器(
前场装饰:盒子装饰(
边界半径:边界半径。圆形(15.0),
边界:边界(
颜色:颜色。绿色,
宽度:2.0
)
),
子:容器(
颜色:颜色,红色,
)
),
)
)
)
上面的代码在子容器前面绘制边框。请注意,即使使用前台装饰
子容器也会有尖角
如果希望子容器具有圆角,则需要对子容器应用borderRadius
,或者使用与父容器具有相同边界半径的ClipRRect
decoration: BoxDecoration(
gradient: new LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
stops: [0.02, 0.02],
colors: [Colors.red, Colors.white],
),
borderRadius: BorderRadius.all(Radius.circular(10)),
color: Colors.white,
boxShadow: [
BoxShadow(color: Colors.grey, blurRadius: 5.0),
],
),
而不是
容器
小部件使用
ClipRRect
之前(不工作):
之后:
Center(
child: ClipRRect(
borderRadius: getAllRoundedBorderRadius(),
child: Hero(
tag: "CossackHero",
child: TweenImage(
last: AssetImage("images/background/cossack_0.jpg"),
first: AssetImage("images/background/c_cossack_0.jpg"),
duration: 2,
height: height,
),
),
),
),
试试这个,
使用ClipRRect
并嵌套在另一个容器中
,现在可以添加非统一边框
Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
boxShadow: [BoxShadow(color: Colors.black12, blurRadius: 5)],
),
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
padding: EdgeInsets.all(20),
decoration: BoxDecoration(
border: Border(
left: BorderSide(color: Colors.indigo, width: 5),
),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Icon(Icons.home),
Text("Home"),
],
),
),
),
)
容器(
装饰:盒子装饰(
颜色:颜色,白色,
边界半径:边界半径。圆形(10),
boxShadow:[boxShadow(颜色:Colors.black12,模糊半径:5)],
),
孩子:ClipRRect(
边界半径:边界半径。圆形(10),
子:容器(
填充:边缘设置。全部(20),
装饰:盒子装饰(
边界:边界(
左侧:边框(颜色:Colors.indigo,宽度:5),
),
),
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
图标(Icons.home),
文本(“主页”),
],
),
),
),
)
屏幕截图:
使用ClipRRect
(使用2容器
)
ClipRRect(
边界半径:边界半径。圆形(16),
子:容器(
宽度:100,
身高:100,
颜色:颜色,黑色,
子:容器(
保证金:全部(8),
颜色:颜色,蓝色,
),
),
)
不带ClipRRect
(使用1容器
)
容器(
宽度:100,
身高:100,
装饰:盒子装饰(
边界半径:边界半径。圆形(16),
边界:边界(
颜色:颜色,黑色,
宽度:4,
),
颜色:颜色,蓝色,
),
)
边框可见。子窗口小部件的边界半径存在问题。下面是图像链接。在子窗口小部件中,未应用我给出的父窗口小部件边框@Marcinzałek已经定义了父容器的边界。是否需要在子容器中再次添加@ZulfiqarBorderRadius属性定义小部件的形状,而不是其周围的线条。如果在父窗口小部件上使用borderRadius,则子窗口小部件不会继承该属性,因此它将以默认矩形绘制。如果你想让它有圆角边框,你也必须指定它。ClipRRect with borderRadius是我找到的最好的解决方案,真的谢谢:)
Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
boxShadow: [BoxShadow(color: Colors.black12, blurRadius: 5)],
),
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
padding: EdgeInsets.all(20),
decoration: BoxDecoration(
border: Border(
left: BorderSide(color: Colors.indigo, width: 5),
),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Icon(Icons.home),
Text("Home"),
],
),
),
),
)