Flutter App:背景不会从黑色变为蓝绿色

Posted

技术标签:

【中文标题】Flutter App:背景不会从黑色变为蓝绿色【英文标题】:Flutter App: Background doesn't change from black to teal 【发布时间】:2021-04-27 01:54:08 【问题描述】:

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

谁能帮我解决这个问题。

这是该页面的完整代码:

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于Flutter App:背景不会从黑色变为蓝绿色的主要内容,如果未能解决你的问题,请参考以下文章

osgFBO(九)多pass---2,pass2,shader将背景从红色变为绿色

osgFBO(十)多pass-3,pass3,shader将背景从绿色变为蓝色

Flutter MaterialPageRoute 导航到黑色背景的屏幕时如何解决?

为啥 Qt mouseReleaseEvent 不会触发?

Flutter笔记(三):设置白色状态栏

如何根据选择更改 QLabel 的背景颜色