MaterialApp 主題專用less
Material 一張白紙ide
Scaffold 腳手架 有導航欄 有body函數
crossAxisAlignment: CrossAxisAlignment.center, 文字對齊方式ui
MainAxisAlignment.spaceEvenly 平均分佈spa
ListView中加載順序 垂直方向 對比column 他能夠滾動code
import 'package:flutter/material.dart'; void main() => runApp(Demo2()); class Demo2 extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( title: '123', home: new Scaffold( body: new ListView(children: <Widget>[ new Image.asset('assets/lake.jpg'), new MyTitleBar(), new MyButton(), new MyText(), ],) )); } } class MyTitleBar extends StatelessWidget { Widget build(BuildContext context) { return new Container( padding: new EdgeInsets.all(32.0), child: new Row( crossAxisAlignment: CrossAxisAlignment.center, children: <Widget>[ new Expanded( child: new Column( crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ new Text("今每天氣會很好"), new Text( "陰到多雲,PM2.5", style: TextStyle(color: Colors.black26), ) ], )), new Icon(Icons.star), new Text("14") ], )); } } class MyText extends StatelessWidget{ Widget build(BuildContext context){ return new Container(padding:new EdgeInsets.all(32.0),child: new Text('因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '因爲構建每一個列的代碼幾乎是相同的,所以使用一個嵌套函數,如buildButtonColumn,它會建立一個顏色爲primary color,包含一個Icon和Text的 Widget 列。' '' ''),); } } class MyButton extends StatelessWidget{ Widget build(BuildContext){ return new Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ button(Icons.mode_comment,'評論'), button(Icons.mode_comment,'評論'), button(Icons.mode_comment,'評論'), ],); } Widget button(icon,title){ return new Column(children: <Widget>[ new Icon(icon), new Text(title) ],); } }