最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

flutter?text組件使用示例詳解

 更新時(shí)間:2022年12月01日 08:47:38   作者:前端那些年  
這篇文章主要為大家介紹了flutter?text組件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

flutter組件的實(shí)現(xiàn)參考了react的設(shè)計(jì)理念,界面上所有的內(nèi)容都是由組件構(gòu)成,同時(shí)也有狀態(tài)組件和無(wú)狀態(tài)組件之分,這里簡(jiǎn)單介紹最基本的組件。

在組件代碼的書(shū)寫(xiě)方式上,web端開(kāi)發(fā)的樣式主要有由css進(jìn)行控制,而客戶端開(kāi)發(fā)根據(jù)使用的技術(shù)棧不同,寫(xiě)法也稍微有些不同:ReactNative的寫(xiě)法和web比較類(lèi)似,但是ReactNative是使用StyleSheet.create()方法創(chuàng)建樣式對(duì)象,以內(nèi)聯(lián)的方式進(jìn)行書(shū)寫(xiě)。

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
const LotsOfStyles = () => {
    return (
      <View style={styles.container}>
        <Text style={styles.red}>just red</Text>
        <Text style={styles.bigBlue}>just bigBlue</Text>
        <Text style={[styles.bigBlue, styles.red]}>bigBlue, then red</Text>
        <Text style={[styles.red, styles.bigBlue]}>red, then bigBlue</Text>
      </View>
    );
};
const styles = StyleSheet.create({
  container: {
    marginTop: 50,
  },
  bigBlue: {
    color: 'blue',
    fontWeight: 'bold',
    fontSize: 30,
  },
  red: {
    color: 'red',
  },
});
export default LotsOfStyles;

而flutter則將組件封裝成一個(gè)個(gè)的對(duì)象,樣式及事件以屬性的方式在實(shí)例化時(shí)進(jìn)行賦值。

Text( 'Hello, $_name! How are you?', 
    textAlign: TextAlign.center, 
    overflow: TextOverflow.ellipsis, 
    style: const TextStyle(fontWeight: FontWeight.bold),
    )

Text組件

用我們的小拇指頭就可以想到,Text組件主要是用來(lái)展示一個(gè)文本字符串。這字符串根據(jù)布局容器的約束空間有可能占展示一行文本,也有可能展示多行文本。

Text組件的構(gòu)造器有一個(gè)可選的style屬性,如果我們省略掉這個(gè)屬性,那么文本就會(huì)使用默認(rèn)的樣式。

如果我們指定了我們定制的style樣式,這個(gè)樣式的類(lèi)對(duì)象是TextStyle。我們定制的style樣式會(huì)被merge到最近的默認(rèn)樣式DefaultTextStyle上去。

默認(rèn)樣式類(lèi)DefaultTextStyle有這么幾個(gè)屬性:

maxLine: 最大行數(shù),這個(gè)屬性是可選的。

overflow: 文本超出后的樣式。 overflow 的可選值有這么幾個(gè):clip(剪切)、fade(隱藏)、ellipsis(省略)、visible(直接展示)。如果我們點(diǎn)開(kāi)文檔看一下,會(huì)發(fā)現(xiàn)它其實(shí)是個(gè)枚舉類(lèi)型Enum。

const TextOverflow = {
    clip,
    fade,
    ellipsis,
    visible
}

Text組件構(gòu)造器上的主要屬性

  • style: 文本樣式。
  • textAlign: 文本對(duì)齊方式。
  • textDirection: 文本方向。
  • textHeightBehavior: 定義如何展示style中的height
  • selectionColor: 文本選中時(shí)的顏色。
  • overflow: 文本超出后的樣式。
  • maxLine: 最大行數(shù),這個(gè)屬性是可選的。

再用小拇指想一想,對(duì)齊方式和文本方向不用說(shuō)也是個(gè)枚舉類(lèi)型。而style則是一個(gè)TextStyle的類(lèi)型,TextStyle可以定義字體的:

  • 粗細(xì)fontWeight
    const Text( 'No, we need bold strokes. ', 
        style: TextStyle(fontWeight: FontWeight.bold),
    )
  • 斜體FontStyle.italic
const Text( "Welcome to the present", 
    style: TextStyle(fontStyle: FontStyle.italic), 
)
  • 透明度和顏色
TextSpan( 
    text: "You don't have the votes.\n", 
    style: TextStyle(
        color: Colors.black.withOpacity(0.6)), 
    ),
  • 字體大小
Text( 
    "These are wise words, ", 
    style:DefaultTextStyle.of(context).style.apply(fontSizeFactor: 2.0), 
)
  • 行高
const Text( 
    'Ladies and gentlemen, ',
    style: TextStyle(height: 5, fontSize: 10),
   )

需要注意的是:行高會(huì)按照 fontSize * n的比例進(jìn)行擴(kuò)展。

然后我們還可以定義字體的下劃線、描邊、填充顏色、甚至漸變色。

  • 下劃線
RichText( 
    text: const TextSpan( 
        text: "Don't tax the South ", 
        children: <TextSpan>[ 
        TextSpan( 
        text: 'cuz', 
        style: TextStyle( 
            color: Colors.black, 
            decoration: TextDecoration.underline,
            decorationColor: Colors.red,                    decorationStyle:TextDecorationStyle.wavy, 
            ),
         ), 
            TextSpan( 
            text: ' we got it made in the shade',             ), 
      ],
     ),
   )
  • 描邊和填充顏色
Stack( 
    children: <Widget>[
    Text( 'Greetings, planet!',
        style: TextStyle( 
            fontSize: 40, 
            foreground: Paint()
            ..style = PaintingStyle.stroke
            ..strokeWidth = 6
            ..color = Colors.blue[700]!,
            ),
        ),
    Text( 'Greetings, planet!',
        style: TextStyle( 
            fontSize: 40, 
            color: Colors.grey[300],
            ),
           ),
          ],
        )
  • 顏色漸變
Text( 
    'Greetings, planet!', 
     style: TextStyle( 
         fontSize: 40, 
         foreground: Paint() 
         ..shader = ui.Gradient.linear( 
             const Offset(0, 20), 
             const Offset(150, 20),
             <Color>[ 
             Colors.red, 
             Colors.yellow,
             ],
            ) 
          ),
      )

整體上想要掌握Text組件的屬性,需要仔細(xì)思考一下它大概需要哪些樣式:選用哪種字體,設(shè)置什么顏色,需要多少行高,選用哪種對(duì)齊方式,是否需要描邊和漸變,是否需要一種裝飾樣式(下劃線,刪除線)就可以掌握了。

而想要文本有可交互的效果,則需要用GestureDetector這個(gè)組件將它包裹起來(lái),在GestureDetector組件上觸發(fā)ontaps事件。

掌握了這些內(nèi)容,就算是掌握了flutter的text組件。

以上就是flutter text組件使用示例詳解的詳細(xì)內(nèi)容,更多關(guān)于flutter text組件使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Kotlin開(kāi)發(fā)的一些實(shí)用小技巧總結(jié)

    Kotlin開(kāi)發(fā)的一些實(shí)用小技巧總結(jié)

    Kotlin 是一個(gè)基于 JVM 的新編程語(yǔ)言,用 JetBrains 的話來(lái)說(shuō)是「更現(xiàn)代化、更強(qiáng)大,所以下面這篇文章主要給大家總結(jié)介紹了關(guān)于Kotlin的一些開(kāi)發(fā)實(shí)用小技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-10-10
  • Android通過(guò)手勢(shì)實(shí)現(xiàn)答題器翻頁(yè)效果

    Android通過(guò)手勢(shì)實(shí)現(xiàn)答題器翻頁(yè)效果

    這篇文章主要為大家詳細(xì)介紹了Android通過(guò)手勢(shì)實(shí)現(xiàn)答題器翻頁(yè)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android 為L(zhǎng)istView添加分段標(biāo)頭的方法

    Android 為L(zhǎng)istView添加分段標(biāo)頭的方法

    下面小編就為大家?guī)?lái)一篇Android 為L(zhǎng)istView添加分段標(biāo)頭的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Android Fragment 基本了解(圖文介紹)

    Android Fragment 基本了解(圖文介紹)

    Android是在Android 3.0 (API level 11)開(kāi)始引入Fragment的可以把Fragment想成Activity中的模塊,這個(gè)模塊有自己的布局,有自己的生命周期,單獨(dú)處理自己的輸入,在Activity運(yùn)行的時(shí)候可以加載或者移除Fragment模塊
    2013-01-01
  • Android自定義view實(shí)現(xiàn)半圓環(huán)效果

    Android自定義view實(shí)現(xiàn)半圓環(huán)效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義view實(shí)現(xiàn)半圓環(huán)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Android app應(yīng)用多語(yǔ)言切換功能實(shí)現(xiàn)

    Android app應(yīng)用多語(yǔ)言切換功能實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Android app應(yīng)用多語(yǔ)言切換功能實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android RecyclerView實(shí)現(xiàn)點(diǎn)擊條目刪除

    Android RecyclerView實(shí)現(xiàn)點(diǎn)擊條目刪除

    這篇文章主要為大家詳細(xì)介紹了Android RecyclerView實(shí)現(xiàn)點(diǎn)擊條目刪除,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Flutter Http分塊下載與斷點(diǎn)續(xù)傳的實(shí)現(xiàn)

    Flutter Http分塊下載與斷點(diǎn)續(xù)傳的實(shí)現(xiàn)

    這篇文章主要介紹了Flutter Http分塊下載與斷點(diǎn)續(xù)傳的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Android仿微信語(yǔ)音消息的錄制和播放功能

    Android仿微信語(yǔ)音消息的錄制和播放功能

    這篇文章主要介紹了Android仿微信語(yǔ)音消息的錄制和播放功能,需要的朋友可以參考下
    2017-09-09
  • 實(shí)例講解Android Fragment的兩種使用方法

    實(shí)例講解Android Fragment的兩種使用方法

    今天小編就為大家分享一篇關(guān)于實(shí)例講解Android Fragment的兩種使用方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03

最新評(píng)論

桦南县| 灵山县| 江华| 福贡县| 韶山市| 黎平县| 温宿县| 宁津县| 枝江市| 高平市| 西青区| 新兴县| 辽宁省| 涪陵区| 沙河市| 崇州市| 桐城市| 麟游县| 曲阜市| 奇台县| 名山县| 湖南省| 朝阳区| 兴隆县| 古交市| 琼海市| 达孜县| 胶州市| 岳普湖县| 伊春市| 晋宁县| 嘉峪关市| 阿荣旗| 鄯善县| 扶风县| 彭州市| 瑞金市| 平邑县| 齐河县| 禄丰县| 鹤岗市|