2017-05-06 50 views
2

我正在学习Flutter,我从非常基础开始。我没有使用MaterialApp。什么是设置整个屏幕背景颜色的好方法?如何在Flutter中设置主屏幕的背景颜色?

这是我到目前为止有:

import 'package:flutter/material.dart'; 

void main() { 
    runApp(new MyApp()); 
} 

class MyApp extends StatelessWidget { 
    // This widget is the root of your application. 
    @override 
    Widget build(BuildContext context) { 
    return new Center(child: new Text("Hello, World!")); 
    } 
} 

我的一些问题是:

  • 什么是背景色设置一个基本的方法是什么?
  • 我在屏幕上看到了什么?哪个代码“是”背景?有没有什么东西可以设置背景颜色?如果不是,什么是简单和适当的“简单背景”(为了绘制背景颜色)。

感谢您的帮助!

上面的代码生成一个黑屏白字: enter image description here

回答

1

下面是我发现做这件事。我不知道是否有更好的方法,或者什么是取舍。

Container“试图尽可能大”,根据https://flutter.io/layout/。另外,容器可以采取decoration,其可以是BoxDecoration,其可以具有color(其为背景颜色)。

下面是一个示例,它确实填充红色屏幕,并提出“你好,世界!”进入中心:

import 'package:flutter/material.dart'; 

void main() { 
    runApp(new MyApp()); 
} 

class MyApp extends StatelessWidget { 
    // This widget is the root of your application. 
    @override 
    Widget build(BuildContext context) { 
    return new Container(
     decoration: new BoxDecoration(color: Colors.red), 
     child: new Center(
     child: new Text("Hello, World!"), 
    ), 
    ); 
    } 
} 

请注意,容器由MyApp build()返回。容器有一个装饰和一个孩子,这是中心文本。

看到它在这里的行动:

enter image description here

+2

如果你正在构建一个简单的应用程序或不使用Material Design的应用程序,容器是一个不错的选择。如果你正在构建一个应用材料,如果你想在所有的画布和卡片深色背景考虑使用ThemeData.dark()。您也可以在使用cardColor和canvasColor参数的构造函数ThemeData卡和帆布背景颜色进行细粒度的控制。 https://docs.flutter.io/flutter/material/ThemeData/ThemeData.html –

0

我认为你需要使用MaterialApp部件和使用theme并设置primarySwatch与你想要的颜色。看起来像下面的代码,

import 'package:flutter/material.dart'; 

void main() { 
    runApp(new MyApp()); 
} 

class MyApp extends StatelessWidget { 
    // This widget is the root of your application. 
    @override 
    Widget build(BuildContext context) { 
    return new MaterialApp(
     title: 'Flutter Demo', 
     theme: new ThemeData(
     primarySwatch: Colors.blue, 
    ), 
     home: new MyHomePage(title: 'Flutter Demo Home Page'), 
    ); 
    } 
}