我正在用框阴影构建自己的类似于材料的卡片。我想将其中的几个组合成一个PageView
,以便我可以在卡之间滑动-每个Card
都应填满整个屏幕宽度。
卡片具有BoxShadow
作为装饰,但是将Card
插入PageView
(或任何其他包装小部件)时,BoxShadow
将被剪切而消失PageView
的边界框。
可以通过将Card
包装到Padding
中来解决此问题,但这不是我想要的,因为我希望由最外面的小部件给整个视图的所有子小部件提供填充-这样一来,如果我的填充发生变化,就不必更改每个小部件。
这是我的Card
代码的样子:
class Card extends StatelessWidget {
final Widget child;
final EdgeInsetsGeometry padding;
Card({@required this.child, this.padding});
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(color: Colors.white, boxShadow: <BoxShadow>[
BoxShadow(color: Color.fromRGBO(0, 0, 0, 0.1), blurRadius: 14.0),
BoxShadow(
color: Color.fromRGBO(0, 0, 0, 0.1),
offset: Offset(0, 2),
blurRadius: 2.0)
]),
child: Padding(
padding: padding ?? EdgeInsets.all(20),
child: this.child,
),
);
}
}
包装其中的几种会导致所描述的裁剪行为。
是否有一种方法告诉Flutter不要裁剪掉“漏出”的内容? 当将小部件放置在堆栈中而没有反弹时,也会发生相同的行为。