Flutter初學(xué)之路—`Text` (文本組件)

Text(文本組件)負(fù)責(zé)顯示文本和定義顯示樣式力麸,其提供了多個(gè)構(gòu)造函數(shù):

  • new Text:創(chuàng)建一個(gè)文本組件可款;
  • new Text.rich:創(chuàng)建一個(gè)擁有TextSpan的文本組件育韩。

Text組件顯示一個(gè)樣式單一的文本字符串。根據(jù)布局約束筑舅,字符串可能跨多行顯示座慰,也可能全部顯示在同一行上。
樣式參數(shù)時(shí)可選的翠拣。當(dāng)省略時(shí)版仔,文本將使用最接近的DefaultTextStyle中的樣式。如果給定樣式的TextStyle.inherit屬性為true(默認(rèn))误墓,則給定樣式將于最接近的DefaultTextStyle的樣式合并蛮粮。這種合并行為是很有用的,例如谜慌,使用默認(rèn)字體系列和大小時(shí)使文本粗體顯示然想。

//Text構(gòu)造函數(shù)
        body: Center(
          child: Text(
            'Hello, $name! How are you?',
            textAlign: TextAlign.center,
            overflow: TextOverflow.ellipsis,
            style: TextStyle(fontWeight: FontWeight.bold),
          ),
        ),
//Text.rich構(gòu)造函數(shù)
        body: Center(
          child: const Text.rich(
            TextSpan(
              text: 'Hello',
              children: <TextSpan>[
                TextSpan(text: ' beautiful ', style: TextStyle(fontStyle: FontStyle.italic)),
                TextSpan(text: 'world', style: TextStyle(fontWeight: FontWeight.bold))
              ]
            )
          )
        ),

交互:

  • 若使用文本對(duì)觸摸事件作出反應(yīng),請(qǐng)將其包裝在GestureDetector組件中欣范,并使用GestureDetector.onTap處理变泄。
  • material design應(yīng)用程序中,考慮使用FlatButton代替恼琼,或者如果不適用妨蛹,至少使用InkWell來(lái)代替GestureDetector
  • 若使用部分文本做交互晴竞,需要使用RichText蛙卤,并將TapeReservator指定為文本相關(guān)部分的TextSpan.recognizer
    • RichText:提供了對(duì)文本樣式的更多控制噩死;
    • DefaultTextStyle:為文本組件提供默認(rèn)樣式颤难。

繼承:

Object > Diagnosticable > DiagnosticableTree > Widget > StatelessWidget > Text

構(gòu)造函數(shù):

//Text構(gòu)造函數(shù)
  const Text(String data, {//要顯示的文本
    Key key,
    TextStyle style,//文本樣式
    StrutStyle strutStyle,//支撐樣式
    TextAlign textAlign,//文本水平對(duì)齊方式
    TextDirection textDirection,//文本顯示的方向
    Locale locale,//用于在相同Unicode字符可以根據(jù)區(qū)域設(shè)置不同時(shí)選擇字體
    bool softWrap,//文本是否應(yīng)該在換行符處斷行
    TextOverflow overflow,//處理溢出
    double textScaleFactor,//每個(gè)邏輯像素的字體像素值
    int maxLines,//文本可顯示多少行
    String semanticsLabel,//該文本的另一種語(yǔ)義標(biāo)簽
  })
//Text.rich構(gòu)造函數(shù)
  const Text.rich(TextSpan textSpan, {//以`TextSpan`方式顯示文本
    Key key,
    TextStyle style,
    StrutStyle strutStyle,
    TextAlign textAlign,
    TextDirection textDirection,
    Locale locale,
    bool softWrap,
    TextOverflow overflow,
    double textScaleFactor,
    int maxLines,
    String semanticsLabel,
  })

屬性:

名稱 類型 說(shuō)明
data String 要顯示的文本
locale Locale 用于在相同Unicode字符可以根據(jù)區(qū)域設(shè)置不同時(shí)選擇字體
maxLines int 文本可顯示多少行。如果文本超過(guò)給定的行數(shù)已维,則根據(jù)溢出截?cái)唷?/td>
overflow TextOverflow 處理溢出
semanticsLabel String 該文本的另一種語(yǔ)義標(biāo)簽
softWrap bool 文本是否應(yīng)該在換行符處斷行
strutStyle StrutStyle 支撐樣式行嗤。Strut樣式定義了設(shè)置最小垂直布局指標(biāo)的支持。
style TextStyle 設(shè)置文本樣式
textAlign TextAlign 文本水平對(duì)齊方式
textDirection TextDirection 文本顯示的方向
textScaleFactor double 每個(gè)邏輯像素的字體像素值
textSpan TextSpan TextSpan方式顯示文本
hashCode int 哈希碼
runtimeType Type 對(duì)象運(yùn)行時(shí)類型的表示形式

方法:

方法名 類型 說(shuō)明
build(BuildContext context) Widget 組件表示的部分用戶界面
debugFillProperties(DiagnosticPropertiesBulider properties) void 添加與節(jié)點(diǎn)關(guān)聯(lián)的其他屬性
createElement StatelessElement 創(chuàng)建一個(gè)StatelessElement來(lái)管理組件在樹(shù)中的位置
debugDescribeChildren() List<DiagnosticsNode> 返回描述詞節(jié)點(diǎn)子節(jié)點(diǎn)的diagnostics節(jié)點(diǎn)對(duì)象列表
noSuchMethod(Invocation invocation) dynamic 當(dāng)訪問(wèn)不存在的方法或?qū)傩詴r(shí)調(diào)用
toDiagnosticsNode({String name, DiagnosticsTreeStyle style}) DiagnosticsNode 返回由使用調(diào)試工具和DiagnostisNode.toStringDep的對(duì)象的調(diào)試表示形式
toString({DiagnosticLevel minLevel: DiagnosticLevel.debug}) String 返回此對(duì)象的字符串表示形式
toStringDeep({String prefixLineOne:'', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug}) String 返回子節(jié)點(diǎn)和它的子節(jié)點(diǎn)的字符串表示形式
toStringShallow({Sting joiner:',', DiagnosticLevel minLevel:DiagnosticLevel.debug}) String 返回對(duì)象的一行詳細(xì)說(shuō)明
toStringShort() String 對(duì)組件簡(jiǎn)短的文本描述

示例:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  
  @override
  Widget build(BuildContext context) {
    const data = "Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep";
    return MaterialApp(
      title: 'Hello World!',
      theme: ThemeData(
        primaryColor: Colors.red,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Welcome to Fultter'),
        ),
        body: Center(
          child: Text(
            data,
            maxLines: 1,
            overflow: TextOverflow.ellipsis,
            softWrap: true,
            strutStyle: StrutStyle(),
            style: TextStyle(
                fontStyle: FontStyle.normal,
                fontWeight: FontWeight.bold,
                fontSize: 15.0
            ),
            textAlign: TextAlign.justify,
            textDirection: TextDirection.rtl,
            textScaleFactor: 2.0,
          ),
        ),
      ),
    );
  }
}

參考文檔:Text class

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垛耳,一起剝皮案震驚了整個(gè)濱河市昂验,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艾扮,老刑警劉巖既琴,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異泡嘴,居然都是意外死亡甫恩,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)酌予,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)磺箕,“玉大人奖慌,你說(shuō)我怎么就攤上這事∷擅遥” “怎么了简僧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)雕欺。 經(jīng)常有香客問(wèn)我岛马,道長(zhǎng),這世上最難降的妖魔是什么屠列? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任啦逆,我火速辦了婚禮,結(jié)果婚禮上笛洛,老公的妹妹穿的比我還像新娘夏志。我一直安慰自己,他們只是感情好苛让,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布沟蔑。 她就那樣靜靜地躺著,像睡著了一般狱杰。 火紅的嫁衣襯著肌膚如雪瘦材。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天浦旱,我揣著相機(jī)與錄音宇色,去河邊找鬼九杂。 笑死颁湖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的例隆。 我是一名探鬼主播甥捺,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼镀层!你這毒婦竟也來(lái)了镰禾?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤唱逢,失蹤者是張志新(化名)和其女友劉穎吴侦,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體坞古,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡备韧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痪枫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片织堂。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叠艳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出易阳,到底是詐尸還是另有隱情附较,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布潦俺,位于F島的核電站拒课,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏黑竞。R本人自食惡果不足惜捕发,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望很魂。 院中可真熱鬧扎酷,春花似錦、人聲如沸遏匆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)幅聘。三九已至凡纳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帝蒿,已是汗流浹背荐糜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留葛超,地道東北人暴氏。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绣张,于是被迫代替她去往敵國(guó)和親答渔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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