问题描述
我用两个骰子创建了一个小应用程序。它完美地工作,就像我想做的那样。第一次修改这个页面的背景颜色时遇到了问题。正如您在下面的代码中看到的,我选择了背景颜色“蓝绿色”。我不知道为什么这个背景没有变成“青色”。在我的应用程序的所有其他页面上,背景颜色为“青色”
谁能帮我解决这个问题。
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(...
,
我运行了你的代码,除了图像部分,背景颜色显示正确。我认为您可以检查图像,但不能检查代码。