在Flutter App中,我正在尝试为FlatButton设置颜色,但是它不起作用。在下面找到源代码。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SafeArea(
child: Scaffold(
body: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
FlatButton(
color: Colors.red,
),
FlatButton(
color: Colors.green,
),
FlatButton(
color: Colors.blue,
),
],
),
),
));
}
}
输出:
我很扑朔迷离,任何想法我的代码中有什么问题?
预先感谢
答案 0 :(得分:7)
您需要提供child和onPressed参数才能渲染小部件,否则将无法渲染,这会导致UI无法正常工作。
查看我修改的代码:
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
);
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SafeArea(
child: Scaffold(
body: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
FlatButton(
color: Colors.red,
onPressed:()=>printData(),
child: Text("click"),
),
FlatButton(
color: Colors.green,
onPressed:()=>printData(),
child: Text("click"),
),
FlatButton(
color: Colors.blue,
onPressed:()=>printData(),
child: Text("click"),
),
],
),
),
));
}
}
void printData(){
print('Hello');
}
答案 1 :(得分:1)
看看FlatButton构造函数的@required字段,没有它,它将无法呈现。
这是带有必填字段的平面按钮。在此添加所需的颜色以进行渲染。 如果没有颜色,则呈现黑色文本和白色背景。
FlatButton(
onPressed: () {
/*...*/
},
child: Text(
"Flat Button",
),
)
答案 2 :(得分:0)
我遇到了同样的问题。我刚刚添加了“ disabledColor:Colors.red” 检查屏幕截图。