iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
Software Development

初學軟體開發系列 第 12

Day12-怎麼丟物件在Flutter上面!

  • 分享至 

  • xImage
  •  

今日學習內容
了解實作Flutter程式碼的規則
使用了Container,Column,Scaffold,MaterialApp等等的物件。
在app介面上可以佈局顏色、文字。

首先是簡單寫文字和顏色上去,成功實作後,再來了解物件的使用規則。
程式碼如下:

import 'package:flutter/material.dart';

void main() {
  runApp(build());
}

Widget build(){
  return MaterialApp(
    home:Scaffold(
      body:Container(
        color:Colors.amber,

        child:Column(
          children:const[
            Text("aaaaaaaaaaaaa"),
            Text("aaaaaaaa"),
            Text("aaaaaaaa"),
            Text("aaaaaaaa"),
            Text("aaaaaaaa"),
          ],
        ),
      ),
    ),
  );
}

Scaffold是整個螢幕的物件,Container裏頭再包含Column,Column是從上往下布局文字的物件。
輸出結果如下:
https://ithelp.ithome.com.tw/upload/images/20220912/20151918J0vKVOYfxZ.png

另外,也可以設置最大最小值範圍,限制物件的大小,使用ConstrainedBox。
程式碼如下:

import 'package:flutter/material.dart';

void main() {
  runApp(build1());
}
Widget build1(){
  return MaterialApp(
    home: Scaffold(
      body:Center(
        child: ConstrainedBox(
          constraints: BoxConstraints(
            minWidth:100,
            minHeight:100,
            maxWidth: 200,
            maxHeight:200,
          ),
          child: Container(
            width: 50,
            height: 50,
            color: Colors.amber,
          ),
        ),
      ),
    ),
  );
}

即使我再圖塊設置50寬50高,但因最小值的100約束,導致圖塊是呈現100寬100高的,達到限制的效果。
https://ithelp.ithome.com.tw/upload/images/20220912/2015191866JDMZxgMy.png

接下來是不受到約束的程式-UnconstrainedBox,顧名思義就是我們可以實現上述的圖塊50寬50高的設定,達到解脫最小值100約束的效果。
程式碼如下:

import 'package:flutter/material.dart';

void main() {
  runApp(build1());
}
Widget build1(){
  return MaterialApp(
    home: Scaffold(
      body:Center(
        child:ConstrainedBox(
          constraints: BoxConstraints(
            maxWidth: 200,
          ),
          child:UnconstrainedBox(
            child: Container(
              width: 50,
              height: 50,
              color: Colors.amber,
            ),
          ),
        ),
      ),
    ),
  );
}

就再新增UnconstrainedBox而已。
今日總結
今天我學習了父元素來控制子元素圖塊的方法,有使用ConstrainedBox以及UnconstrainedBox的語法,還有學習基本的設計界面使用的語法Column,Scaffold等等的使用,目前我還不熟悉使用,但相信接下的幾天下來,就可以熟悉並習慣使用。


上一篇
Day11-開發Flutter前的了解
下一篇
Day13-按鈕來切換圖片~~
系列文
初學軟體開發31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言