Mar*_*ing 4 widget dart flutter
所以我试图创建一个可以在我的 flutter 应用程序中使用的自定义小部件。创建此小部件时,我希望始终选择一种颜色(因此是所需的值),但我希望保持 cardChild 和 onpres 值可选。我该怎么做呢?我尝试提供一个空容器和空函数作为默认值,但随后出现错误
错误:可选参数的默认值必须是常量。(non_constant_default_value 位于 [untitled1] lib/Components/reusable_card.dart:6)
这是我的小部件构造函数:
class ReusableCard extends StatelessWidget {ReusableCard(
{required this.colour, this.cardChild = Container(), this.onPress = () {}});
final Color colour;
final Widget cardChild;
final Function onPress;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
onPress;
},
child: Container(
child: cardChild,
margin: EdgeInsets.all(15.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(15.0)),
color: colour,
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
你可以使用以下方法
class ReusableCard extends StatelessWidget {ReusableCard(
{required this.colour, this.cardChild, this.onPress});
final Color colour;
final Widget? cardChild;
final Function? onPress;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
if(onPress != null){
onPress!();
}
},
child: Container(
child: cardChild ?? Container(),
margin: EdgeInsets.all(15.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(15.0)),
color: colour,
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5255 次 |
| 最近记录: |