Flutter 应用程序:背景不会从黑色变为蓝绿色

问题描述

我用两个骰子创建了一个小应用程序。它完美地工作,就像我想做的那样。第一次修改这个页面的背景颜色时遇到了问题。正如您在下面的代码中看到的,我选择了背景颜色“蓝绿色”。我不知道为什么这个背景没有变成“青色”。在我的应用程序的所有其他页面上,背景颜色为“青色”

谁能帮我解决这个问题。

这是该页面的完整代码

import 'package:Flutter/material.dart';
import 'dart:math';

void main() {
  return runApp(
    MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.teal,body: DicePage(),),);
}

class DicePage extends StatefulWidget {
  @override
  _DicePageState createState() => _DicePageState();
}
class _DicePageState extends State<DicePage> {
  int leftDiceNumber = 1;
  int rightDiceNumber = 1;

  void changeDiceFace() {
    setState(() {
      leftDiceNumber = Random().nextInt(6) + 1;
      rightDiceNumber = Random().nextInt(6) + 1;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(

        children: <Widget>[
          Expanded(
            child: Padding(
              padding: const EdgeInsets.all(40.0),child: FlatButton(
                onpressed: () {
                  setState(() {
                    leftDiceNumber = Random().nextInt(6) + 1;
                  });
                },child: Image.asset('images/dice$leftDiceNumber.png'),Expanded(
            child: Padding(
              padding: const EdgeInsets.all(40.0),child: FlatButton(
                onpressed: () {
                  changeDiceFace();
                },child: Image.asset('images/dice$rightDiceNumber.png'),],);
  }
}

解决方法

在您的 MaterialApp 中有一个方法名称 ThemeData。您可以通过此设置应用程序的主题。您可以按照以下代码

void main() {
  return runApp(
    MaterialApp(
    theme: ThemeData(
          primarySwatch: Colors.teal,),home: Scaffold(
        body: DicePage(),);
}
,

如果您对所有屏幕使用相同的背景颜色,请考虑通过主题更改它:

 MaterialApp(
      theme:ThemeData(scaffoldBackgroundColor: Colors.teal),home: Scaffold(...
,

我运行了你的代码,除了图像部分,背景颜色显示正确。我认为您可以检查图像,但不能检查代码。