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

时间:2020-06-07 09:41:43

标签: android android-studio flutter dart flutter-layout

在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,
            ),
          ],
        ),
      ),
    ));
  }
}

输出:

My Code Output

我很扑朔迷离,任何想法我的代码中有什么问题?

预先感谢

3 个答案:

答案 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字段,没有它,它将无法呈现。 constructor

这是带有必填字段的平面按钮。在此添加所需的颜色以进行渲染。 如果没有颜色,则呈现黑色文本和白色背景。

FlatButton(
  onPressed: () {
    /*...*/
  },
  child: Text(
    "Flat Button",
  ),
)

答案 2 :(得分:0)

我遇到了同样的问题。我刚刚添加了“ disabledColor:Colors.red” 检查屏幕截图。

enter image description here

相关问题