Flutter基礎元件之文字

2021-10-09 09:21:14 字數 2738 閱讀 1881

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?都會?還是另乙個物件?答案是取決於實...