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...