Flutter 基本組件之TextView

Text組件的構(gòu)造方法

構(gòu)造方法一
該構(gòu)造方法用于創(chuàng)建一個(gè)單一格式的 Text脓恕,其中第一個(gè)必傳參數(shù)為文本內(nèi)容

const Text(
    this.data, {
    Key key,
    this.style,
    this.strutStyle,
    this.textAlign,
    this.textDirection,
    this.locale,
    this.softWrap,
    this.overflow,
    this.textScaleFactor,
    this.maxLines,
    this.semanticsLabel,
    this.textWidthBasis,
  }) : assert(
         data != null,
         'A non-null String must be provided to a Text widget.',
       ),
       textSpan = null,
       super(key: key);

構(gòu)造方法二
該構(gòu)造方法用于創(chuàng)建一個(gè)富文本的 Text店枣,其中第一個(gè)必傳參數(shù)為 TextSpan钾怔,TextSpan 中可以設(shè)置 children 屬性,包含多個(gè) TextSpan粥脚,每個(gè) TextSpan 可以設(shè)置各自的文本內(nèi)容和樣式

 const Text.rich(
    this.textSpan, {
    Key key,
    this.style,
    this.strutStyle,
    this.textAlign,
    this.textDirection,
    this.locale,
    this.softWrap,
    this.overflow,
    this.textScaleFactor,
    this.maxLines,
    this.semanticsLabel,
    this.textWidthBasis,
  }) : assert(
         textSpan != null,
         'A non-null TextSpan must be provided to a Text.rich widget.',
       ),
       data = null,
       super(key: key);

常用屬性

屬性名 功能 值所屬類型
data Text顯示的文本纵揍,必填參數(shù) String
textAlign 文本對(duì)齊方式(center 居中,left 左 對(duì)齊垛玻,right 右對(duì)齊割捅,justfy 兩端對(duì)齊) TextAlign
maxLines 文本顯示的最大行數(shù) int
overflow 文字超出屏幕之后的處理方式(clip 裁剪,fade 漸隱帚桩,ellipsis 省略號(hào)) TextOverflow
textScaleFactor 文本的縮放比例 double
textDirection 文本方向(ltr從左至右亿驾,rtl從右至 左) TextDirection
style 用于指定文本顯示的樣式如顏色、字體账嚎、粗細(xì)莫瞬、背景等 TextStyle

style屬性

屬性名 功能 值所屬類型
color 設(shè)置文本的顏色 Color
fontSize 設(shè)置字體大小 double
fontWeight 字體的加粗權(quán)重bold粗體,normal正常體 FontWeight
fontStyle 文本顯示樣式(italic斜體醉锄,normal正常體) FontStyle
letterSpacing 單詞之間的間距 如果是負(fù)值,會(huì)讓字母變得更緊湊) double
wordSpacing 字母之間的間距如果是負(fù)值浙值,會(huì)讓單詞變得更緊湊 double
height 行高恳不,需要注意的是這里的值是個(gè)比例值 double
decoration 文字裝飾線(none沒有線,lineThrough刪除線开呐,overline上劃線烟勋,underline下劃線 TextDecoration
decorationColor 文字裝飾線顏色 Color
decoration 文字裝飾線(none沒有線,lineThrough刪除線筐付,overline上劃線卵惦,underline下劃線 TextDecoration
decorationStyle 文字裝飾線風(fēng)格([dashed,dotted]虛線,double兩根線瓦戚,solid一根實(shí)線沮尿,wavy波浪 線) TextDecorationStyle
/*
 * Text 基本屬性 
 */
class NormalText extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
  
    return Text(" 我是Text 基本屬性 我是Text 基本屬性我是Text 基本屬性我是Text 基本屬性我是Text 基本屬性我是Text 基本屬性我是Text 基本屬性",
      textAlign: TextAlign.start, //文本對(duì)齊方式  TextAlign.left 靠左對(duì)齊 , TextAlign.right 靠右對(duì)齊,TextAlign.justify 兩端對(duì)齊,TextAlign.center 居中, TextAlign.start 靠左邊開始位置對(duì)齊,TextAlign.end 靠對(duì)齊容器尾部邊緣
      textScaleFactor: 1.2,  // 文本的比例大小 ,比喻文本比例大小是1.5 , 顯示出來就是文本的1.5倍.
      textDirection: TextDirection.rtl, // 這是指文本的方向, TextDirection.ltr 這靠左到右顯示TextDirection.rtl 這是靠右到左顯示
      maxLines: 1, // 最大顯示行數(shù),
      overflow: TextOverflow.ellipsis, // 當(dāng)文字超出顯示屏幕的時(shí)候, clip 裁剪, fede 漸顯 , ellipsis 省略號(hào)
      style: TextStyle(
        fontSize:  20,  // 設(shè)置 字體的大小
        color: Colors.blue ,// 設(shè)置顏色 ,  Color.fromARGB 這可以設(shè)置顏色的rgb值, 最后一個(gè)值是指透明,1.0完全不透明
        backgroundColor: Color.fromRGBO(222,225, 40, 1.0), // 背景顏色
        fontWeight:  FontWeight.bold ,  // 字體的權(quán)重, bold 是粗字體, normal正常字體
         letterSpacing: 1.2 ,// 單詞之間的距離
         wordSpacing: 1.6 ,// 字母之間的距離
          height:  1.4 ,  // 行高 , 是一個(gè)比例值
          decoration:  TextDecoration.overline ,// 文字的裝飾線 
          decorationColor:  Colors.grey,   //裝飾線的顏色
          decorationStyle: TextDecorationStyle.double  // 裝飾線的樣式
      ),
    );
  }

TextSpan

TextSpan跟Text的區(qū)別就在于TextSpan是分片较解,我們可以把一串字符串分為幾個(gè)片段來管理畜疾,每個(gè)片段可以單獨(dú)設(shè)置樣式

/*
 * TextSpan  的屬性 
 */
class TextSpanView extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Text.rich(TextSpan(children: [
      TextSpan(
        text: '張三',
        style: TextStyle(
            color: Colors.red, fontSize: 30.0, fontWeight: FontWeight.bold),
      ),
      TextSpan(
          text: "愛打籃球----",
          style: TextStyle(
              color: Colors.black,
              fontSize: 20.0,
              height: 1.2,
              decoration: TextDecoration.underline,
              wordSpacing: 1.6))
    ]));
  }
}

DefaultTextStyle

父節(jié)點(diǎn)的文本樣式子節(jié)點(diǎn)默認(rèn)會(huì)繼承,如果子節(jié)點(diǎn)中重新設(shè)置了默認(rèn)樣式的某些屬性印衔,那么則以子節(jié)點(diǎn)設(shè)置的為準(zhǔn)啡捶。我們也可以通過設(shè)置inherit: false 不繼承父節(jié)點(diǎn)的默認(rèn)樣式。

/*
 * DefaultTextStyle
 */
class MyDefaultTextStyle extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return DefaultTextStyle(
      // 設(shè)置默認(rèn)的樣式, 可以通過繼通過設(shè)置inherit: false 不繼承父節(jié)點(diǎn)的默認(rèn)樣式
      textAlign: TextAlign.center,
      style: TextStyle(
        fontSize: 30,
        color: Colors.grey,
        letterSpacing: 1,
        wordSpacing: 3,
        fontWeight: FontWeight.bold,
      ),

      child: Column(
        children: <Widget>[
          Text(
            "text 1",
            style: TextStyle(
              /*這里我們重新指定一下顏色奸焙,那么最終的顏色就以子節(jié)點(diǎn)的設(shè)置為準(zhǔn)*/
              color: Colors.deepOrange,
            ),
          ),
          Text(
            "text 2",
            style: TextStyle(
              inherit: false, //inherit設(shè)為false表示不繼承父節(jié)點(diǎn)默認(rèn)樣式瞎暑,默認(rèn)值為true
              color: Colors.orange,
            ),
          ),
          Text("text 3") // 這是全部繼承父類吃樣式,顏色
        ],
      ),
    );
  }
}

效果


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末彤敛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子了赌,更是在濱河造成了極大的恐慌墨榄,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揍拆,死亡現(xiàn)場(chǎng)離奇詭異渠概,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)嫂拴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門播揪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人筒狠,你說我怎么就攤上這事猪狈。” “怎么了辩恼?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵雇庙,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我灶伊,道長(zhǎng)疆前,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任聘萨,我火速辦了婚禮竹椒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘米辐。我一直安慰自己胸完,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布翘贮。 她就那樣靜靜地躺著赊窥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狸页。 梳的紋絲不亂的頭發(fā)上锨能,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音芍耘,去河邊找鬼腹侣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛齿穗,可吹牛的內(nèi)容都是我干的傲隶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼窃页,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼跺株!你這毒婦竟也來了复濒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤乒省,失蹤者是張志新(化名)和其女友劉穎巧颈,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袖扛,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡砸泛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛆封。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唇礁。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖惨篱,靈堂內(nèi)的尸體忽然破棺而出盏筐,到底是詐尸還是另有隱情,我是刑警寧澤砸讳,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布琢融,位于F島的核電站,受9級(jí)特大地震影響簿寂,放射性物質(zhì)發(fā)生泄漏漾抬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一常遂、第九天 我趴在偏房一處隱蔽的房頂上張望纳令。 院中可真熱鬧,春花似錦烈钞、人聲如沸泊碑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至臭脓,卻和暖如春酗钞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背来累。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工砚作, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嘹锁。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓葫录,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親领猾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子米同,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容