颤振平面按钮颜色属性不起作用
Posted
技术标签:
【中文标题】颤振平面按钮颜色属性不起作用【英文标题】:Flutter Flat Button Color Property Not Working 【发布时间】:2020-09-26 07:46:30 【问题描述】:在颤振应用程序中,我正在尝试为 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,
),
],
),
),
));
输出:
我是初学者,知道我的代码有什么问题吗?
提前致谢
【问题讨论】:
【参考方案1】:您需要提供 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');
【讨论】:
【参考方案2】:查看 FlatButton 构造函数的 @required 字段,没有这些字段将无法呈现。
这是一个带有必填字段的平面按钮。添加你想要的颜色来渲染它。 如果没有颜色,它会以黑色文本和白色背景呈现。
FlatButton(
onPressed: ()
/*...*/
,
child: Text(
"Flat Button",
),
)
【讨论】:
感谢您的回答。对我很有用 很高兴它有帮助!【参考方案3】:我遇到了同样的问题。我刚刚添加了“disabledColor:Colors.red” 检查屏幕截图。
enter image description here
【讨论】:
欢迎来到SO,请直接在答案中发布代码而不是截图 您能否发布一张您在移动设备中获得的截图。如果该按钮颜色不适用? 在将 null 设置为 onpress 方法的内部请使用任何虚拟方法。所以我们可以跟踪和错误来找到解决方案以上是关于颤振平面按钮颜色属性不起作用的主要内容,如果未能解决你的问题,请参考以下文章