颤振平面按钮颜色属性不起作用

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 方法的内部请使用任何虚拟方法。所以我们可以跟踪和错误来找到解决方案

以上是关于颤振平面按钮颜色属性不起作用的主要内容,如果未能解决你的问题,请参考以下文章

颤振创建新帐户按钮不起作用

颤振动画不起作用

颤振 notifyListeners 似乎不起作用

颤动中的单选按钮活动颜色不起作用

react-native-elements 按钮背景颜色不起作用

如果指定了文本颜色,则禁用按钮在 React JS 中不起作用