Flutter學習 基礎元件Widgets

2021-09-07 23:43:14 字數 3559 閱讀 2957

flutter是乙個跨平台開發框架,使用dart語言開發,其提供了很多基礎元件。開發者可以直接使用達到快速開發效果。參考文獻:

1.官網基礎元件:

2.flutter widget 索引:可以搜尋元件)

乙個擁有繪製、定位、調整大小的 widget。(可以看做android的乙個layout布局,裡面可以有多個檢視view)

參考文件:

注:所有控制項都是widget的子類

屬性:

container()
引數說明:1. child: 是最重要的元素,即內部布局檢視,其定義是乙個widget:final widget child;

既然型別是widget,那麼可以是哪些呢?通過原始碼不難發現,widget有很多,但是都是繼承於有狀態或者無狀態的widget

class statelesswidget extends widget、class statefulwidget extends widget.

包括我們常用的text控制項:class text extends statelesswidget ,所以這裡的child可以是任意的widget。

2. alignment:對齊方式,是相對于父容器位置(含義同android的align一樣,引數值不一樣),如:

建構函式:

const alignment(this.x, this.y)

: assert(x != null),

assert(y != null);

引數範圍為:[-1.0,1.0] 表示從頂部到底部或者從左到右。

居中:alignment(0.0, 0.0)

右下角: alignment(1.0,1.0),

還有其他設定,這裡就不多講了。

padding

3. padding:表示widget邊框和內容區之間距離。

建構函式很多,先看乙個:

const edgeinsets.all(double value)

: left = value, top = value, right = value, bottom = value;

以上就是內容距離上下左右的邊距值,單位是畫素:pixels

4. color:顏色值 型別是color

建構函式:

const color(int value) : value = value & 0xffffffff;

可以設定顏色值(同android設定方法)指定顏色,也可以使用定義好的顏色(顏色常量在類colors中)

設定紅色:new color(0xffff0000)或者colors.red

5. decoration:英文含義是裝飾,在這裡就是指背景圖案

這個比較複雜,可以自定義很多背景樣式,邊框、圓角、陰影、形狀、漸變、背景影象等。後面用到再學習。

注意:container背景色和decoration不能同時設定。

assert(color == null || decoration == null,

『cannot provide both a color and a decoration\n』

『the color argument is just a shorthand for 「decoration: new boxdecoration(color: color)」.』

),6. width、height:容器寬高

width:container的寬度,設定為double.infinity可以強制在寬度上撐滿,不設定,則根據child和父節點兩者一起布局。

height:container的高度,設定為double.infinity可以強制在高度上撐滿。

7. constraints: 約束,意思是給child加上額外的約束條件。

設定child的寬高範圍值,建構函式如下:

/// the minimum width that satisfies the constraints.

final double minwidth;

/// the maximum width that satisfies the constraints.

////// might be [double.infinity].

final double maxwidth;

/// the minimum height that satisfies the constraints.

final double minheight;

/// the maximum height that satisfies the constraints.

////// might be [double.infinity].

final double maxheight;

class boxconstraints extends constraints );

0.0表示最小,double.infinity為無限大,但是不能大過父容器

8. margin:外邊距:本widget與父邊框的距離。

值與padding一致。

9. 外邊距:本widget與父邊框的距離。

10. transform:矩陣變換,動畫相關處理(後面再學習)使用方法:

import 'package:flutter/material.dart';

@override

widget build(buildcontext context)

}

所以修改**:增加了extdirection: textdirection.ltr一行

import 'package:flutter/material.dart';

@override

widget build(buildcontext context)

}

執行後效果如下:

其實container就是乙個widget,裡面可以有多個child,child也是widget。container可以設定子child的布局,大小,位置等。

注意一點:其屬性中的transform、decoration、foregrounddecoration關係如下:

優先繪製transform

然後是decoration

最後是foregrounddecoration

Flutter基礎元件之文字

flutter基礎元件之文字 1 text text用於顯示簡單樣式文字,它包含一些控制文字顯示樣式的一些屬性。示例 如下 column children text hello world textalign textalign.left,text hello world i m jack.4,ma...

Flutter 基礎元件 狀態管理

乙個永恆的主題,狀態 state 管理 無論是在react vue 兩者都是支援響應式程式設計的web開發框架 還是flutter中,他們討論的問題和解決的思想都是一致的。乙個問題,statefulwidget的狀態應該被誰管理?widget本身?父widget?都會?還是另乙個物件?答案是取決於實...

Flutter 基礎篇(十一) 布局元件

布局元件是指包含乙個或多個子元件的元件,不同的布局元件對子元件的排列方式不同。在前面的文章有提到,element樹才是最終的繪製樹,它是由widget樹來建立的,widget只是element的配置資料。在flutter中,根據widget是否需要包含子節點將widget分為三類,分別對應三種ele...