flutter基礎元件之文字
(1)text
text用於顯示簡單樣式文字,它包含一些控制文字顯示樣式的一些屬性。示例**如下:
column(
children: [
text(
"hello world",
textalign: textalign.left,
),text(
"hello world! i'm jack. " * 4,
maxlines: 1,
overflow: textoverflow.ellipsis,
),text(
"hello world",
textscalefactor: 1.5,
),],
crossaxisalignment: crossaxisalignment.start,
)
看下效果圖:
接著,我們需要對使用到的幾個屬性了解一下:
1) textalign:文字的對齊方式;可以選擇左對齊、右對齊還是居中。注意,對齊的參考係是text widget本身。本例中雖然是指定了居中對齊,但因為text文字內容寬度不足一行,text的寬度和文字內容長度相等,那麼這時指定對齊方式是沒有意義的,只有text寬度大於文字內容長度時指定此屬性才有意義。下面我們指定乙個較長的字串:
text("hello world "*6, //字串重複六次
textalign: textalign.center,
),
效果就如下面這樣:
2)maxlines、overflow:指定文字顯示的最大行數,預設情況下,文字是自動折行的,如果指定此引數,則文字最多不會超過指定的行。如果有多餘的文字,可以通過overflow來指定截斷方式,預設是直接截斷,本例中指定的截斷方式textoverflow.ellipsis,它會將多餘文字截斷後以省略符「…」表示;
3)textscalefactor:代表文字相對於當前字型大小的縮放因子,相對於去設定文字的樣式style屬性的fontsize,它是調整字型大小的乙個快捷方式。該屬性的預設值可以通過mediaquerydata.textscalefactor獲得,如果沒有mediaquery,那麼會預設值將為1.0。
2.textstyle
textstyle呢,用於指定文字顯示的樣式如顏色、字型、粗細、背景等。示例**如下:
text("hello world",
style: textstyle(
color: colors.blue,
fontsize: 18.0,
height: 1.2,
fontfamily: "courier",
background: new paint()..color=colors.yellow,
decoration:textdecoration.underline,
decorationstyle: textdecorationstyle.dashed),)
執行結果如下所示:
text有關的其餘屬性暫時不介紹了。
在之前的例子中text的所有文字內容只能按同一種樣式,如果我們需要對乙個text內容的不同部分按照不同的樣式顯示,這時就可以使用textspan,它代表文字的乙個「片段」。先看一下textspan的定義:
const textspan();
再看一下示例**
text.rich(textspan(children: [
textspan(text: "home: "),
textspan(
text: "",
style: textstyle(color: colors.blue),
),])),
通過textspan,我們能得到如下的效果:
4.defaulttextstyle
在widget樹中,文字的樣式預設是可以被繼承的(子類文字類元件未指定具體樣式時可以使用widget樹中父級設定的預設樣式),因此,如果在widget樹的某乙個節點處設定乙個預設的文字樣式,那麼該節點的子樹中所有文字都會預設使用這個樣式,而defaulttextstyle正是用於設定預設文字樣式的。下面我們看乙個例子:
defaulttextstyle(
//1.設定文字預設樣式
style: textstyle(
color:colors.red,
fontsize: 20.0,
),textalign: textalign.start,
child: column(
crossaxisalignment: crossaxisalignment.start,
children: [
text("hello world"),
text("i am jack"),
text("i am jack",
style: textstyle(
inherit: false, //2.不繼承預設樣式
color: colors.grey
),),
],),
),
效果如下:
銅鎖上述的學習,我們基本能在flutter中使用文字了。繼續努力,奧利給!
Flutter之提示元件
本文參考部落格 即提示很短一段時間後就會消失 傳入的context絕對不能是scaffold節點下的的context,因為 scaffold的.of 方法是從widget樹中去找到scaffold的context 所以如果直接在scaffold中使用showsnackbar的時候,需要外層套一層bu...
Flutter學習 基礎元件Widgets
flutter是乙個跨平台開發框架,使用dart語言開發,其提供了很多基礎元件。開發者可以直接使用達到快速開發效果。參考文獻 1.官網基礎元件 2.flutter widget 索引 可以搜尋元件 乙個擁有繪製 定位 調整大小的 widget。可以看做android的乙個layout布局,裡面可以有...
Flutter 基礎元件 狀態管理
乙個永恆的主題,狀態 state 管理 無論是在react vue 兩者都是支援響應式程式設計的web開發框架 還是flutter中,他們討論的問題和解決的思想都是一致的。乙個問題,statefulwidget的狀態應該被誰管理?widget本身?父widget?都會?還是另乙個物件?答案是取決於實...