Flutter - Text組件

作為Flutter最基本的文本組件,也是最通用的組件,在最開始學(xué)習(xí)就把建立一個Flutter程序的結(jié)構(gòu)熟悉一下
下面一個簡單的demo,我們大致把這個Flutter程序分為3個區(qū)塊

  • 引入flutter/material.dart 視覺組件
  • 建立一個入口函數(shù)mian() 通過runApp() 把我們的主體內(nèi)容傳入到這個函數(shù)
  • Flutter中,萬物皆組件.建立剛才第二步傳入的這個自定義主件
import 'package:flutter/material.dart';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '這里是beline的app',
      home: Scaffold(
        appBar: AppBar(
          title: Text('這里是title')
        ),
        body: Center(
          child: Text('這里是正文'),
        )
      ),
    );
  }
}

在自定義組件中,通過build方法來構(gòu)建組件內(nèi)容
在上面的demo中,這個組件主要包含兩個部分

  • title 此處的title并不是app頂部的文字部分
  • home 頁面顯示的內(nèi)容其中Scaffold函數(shù)中的appBar方法傳入的title用于app頂部顯示內(nèi)容,而body則作為app正文部分展示,此處Center做為一個布局單位,在以后會經(jīng)常用,child則是子元素的意思.

我們發(fā)現(xiàn)凡是需要顯示文字的地方,都可以使用Text()組件顯示

image.png

textAlign 水平對齊方式

Text組件中,都可以使用textAlign屬性進(jìn)行文字對齊.使用上和CSS類似,但是需要注意的是如果直接寫textAlign:center編譯器是會報(bào)錯的.正確寫法應(yīng)該是textAlign: TextAlign.center

import 'package:flutter/material.dart';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '這里是beline的app',
      home: Scaffold(
        appBar: AppBar(
          title: Text('這里是title')
        ),
        body: Center(
          child: Text(
            '經(jīng)過對windows和mac系統(tǒng)安裝Flutter環(huán)境對比發(fā)現(xiàn),mac系統(tǒng)安裝Flutter需要對mac系統(tǒng)環(huán)境變量的配置方法'
                ',以及安卓sdk的使用更加熟悉,否則會踩很多坑',
            textAlign: TextAlign.center,
          ),
        )
      ),
    );
  }
}

APP界面:


image.png

舉一反三:TextAlign的屬性

  • left 左對齊
  • center 居中
  • right 右對齊
  • start 從開始的位置對齊(類似左對齊)
  • end 結(jié)尾處對齊(類似右對齊)

maxLines 最大顯示行數(shù) 以及 overflow 溢出處理

在實(shí)際項(xiàng)目中,在列表頁有時候需要只顯示1行或者兩行的文字那么,我們可以引入maxLines屬性,后面跟的數(shù)字單位為行,例如1就是只顯示一行的意思

child: Text(
  '經(jīng)過對windows和mac系統(tǒng)安裝Flutter環(huán)境對比發(fā)現(xiàn),mac系統(tǒng)安裝Flutter需要對mac系統(tǒng)環(huán)境變量的配置方法以及安卓sdk的使用更加熟悉,否則會踩很多坑',
  textAlign: TextAlign.center,
  maxLines: 1,
),

但是我們發(fā)現(xiàn)在app中,文字確實(shí)只顯示了一行,但是很生硬的切除了.這里我們就引入了另外一個是屬性:overflow

import 'package:flutter/material.dart';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '這里是beline的app',
      home: Scaffold(
        appBar: AppBar(
          title: Text('這里是title')
        ),
        body: Center(
          child: Text(
            '經(jīng)過對windows和mac系統(tǒng)安裝Flutter環(huán)境對比發(fā)現(xiàn),mac系統(tǒng)安裝Flutter需要對mac系統(tǒng)環(huán)境變量的配置方法'
                ',以及安卓sdk的使用更加熟悉,否則會踩很多坑',
            textAlign: TextAlign.center,
            maxLines: 1,
            overflow: TextOverflow.clip,
          ),
        )
      ),
    );
  }
}

上面demo中,我們使用了overflow: TextOverflow.clip,對溢出的文本進(jìn)行處理.那么屬性都代表的意思:

  • TextOverflow.clip 生硬的切掉多余部分
  • TextOverflow.ellipsis 在文本的最后加'...'
  • TextOverflow.fade 文字從上到下漸變消失
    TextOverflow.fade效果:


    image.png

style屬性

text組件中,style屬性最為繁瑣,因?yàn)閷ξ淖值拇笮?顏色之類的設(shè)置都是在這里完成的,下面通過一個demo,來簡單的實(shí)現(xiàn)一些對文字的處理

import 'package:flutter/material.dart';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '這里是beline的app',
      home: Scaffold(
        appBar: AppBar(
          title: Text('這里是title')
        ),
        body: Center(
          child: Text(
            '經(jīng)過對windows和mac系統(tǒng)安裝Flutter環(huán)境對比發(fā)現(xiàn),mac系統(tǒng)安裝Flutter需要對mac系統(tǒng)環(huán)境變量的配置方法'
                ',以及安卓sdk的使用更加熟悉,否則會踩很多坑',
            textAlign: TextAlign.center,
            maxLines: 2,
            overflow: TextOverflow.fade,
            style: TextStyle(
              fontSize: 25.0, //- 設(shè)置文字的大小
              color: Color.fromARGB(255, 255, 123, 122), //- 設(shè)置字體顏色
              decoration: TextDecoration.underline, //- 文字下面加下劃線
              decorationStyle: TextDecorationStyle.solid, //- 實(shí)線
            )
          ),
        )
      ),
    );
  }
}

app展示


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末墩虹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌止毕,老刑警劉巖弦撩,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘱丢,死亡現(xiàn)場離奇詭異袋倔,居然都是意外死亡坦辟,警方通過查閱死者的電腦和手機(jī)鳄橘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門声离,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瘫怜,你說我怎么就攤上這事术徊。” “怎么了鲸湃?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵赠涮,是天一觀的道長。 經(jīng)常有香客問我暗挑,道長笋除,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任炸裆,我火速辦了婚禮垃它,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烹看。我一直安慰自己国拇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布惯殊。 她就那樣靜靜地躺著酱吝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪土思。 梳的紋絲不亂的頭發(fā)上掉瞳,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天,我揣著相機(jī)與錄音浪漠,去河邊找鬼陕习。 笑死,一個胖子當(dāng)著我的面吹牛址愿,可吹牛的內(nèi)容都是我干的该镣。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼响谓,長吁一口氣:“原來是場噩夢啊……” “哼损合!你這毒婦竟也來了省艳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤嫁审,失蹤者是張志新(化名)和其女友劉穎跋炕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體律适,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辐烂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了捂贿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纠修。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖厂僧,靈堂內(nèi)的尸體忽然破棺而出扣草,到底是詐尸還是另有隱情,我是刑警寧澤颜屠,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布辰妙,位于F島的核電站,受9級特大地震影響甫窟,放射性物質(zhì)發(fā)生泄漏上岗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一蕴坪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敬锐,春花似錦背传、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颤介,卻和暖如春梳星,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滚朵。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工冤灾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辕近。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓韵吨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親移宅。 傳聞我的和親對象是個殘疾皇子归粉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

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