React-Native 之 Text的使用

前言

  • 學(xué)習(xí)本系列內(nèi)容需要具備一定 HTML 開發(fā)基礎(chǔ)滥比,沒有基礎(chǔ)的朋友可以先轉(zhuǎn)至 HTML快速入門(一) 學(xué)習(xí)

  • 本人接觸 React Native 時間并不是特別長乌助,所以對其中的內(nèi)容和性質(zhì)了解可能會有所偏差昼牛,在學(xué)習(xí)中如果有錯會及時修改內(nèi)容旬盯,也歡迎萬能的朋友們批評指出溶弟,謝謝

  • 文章第一版出自簡書绽榛,如果出現(xiàn)圖片或頁面顯示問題,煩請轉(zhuǎn)至 簡書 查看 也希望喜歡的朋友可以點(diǎn)贊胳徽,謝謝

Text 組件介紹


  • 在 React Native 用于顯示文本的組件就是 Text积锅,和iOS中的 UIlabel爽彤,Android中的 TextView類似,專門用來顯示基本的文本信息缚陷,處理基本的顯示布局外适篙,還可以進(jìn)行嵌套顯示,設(shè)置樣式箫爷,已經(jīng)事件處理(如:點(diǎn)擊事件)

Text 組件常用的屬性和方法


  • color:字體顏色

        // 字體顏色
        color:'blue'
    
    

    效果:

字體顏色
  • numberOfLines:設(shè)置 Text 顯示文本的行數(shù)嚷节,如果顯示的內(nèi)容超過行數(shù),默認(rèn)其余的文本信息不再顯示

        render() {
            return (
                <View style={styles.container}>
                    <Text style={styles.textStyle} numberOfLines={3}>雨澤Forest雨澤Forest雨澤Forest雨澤Forest雨澤Forest雨澤Forest雨澤Forest雨澤Forest雨澤Forest</Text>
                </View>
            );
        }
    
    

    效果:


    設(shè)置行數(shù)
  • fontSize:字體大小

        // 字體大小
        fontSize:30
            
    

    效果:


    文字大小
  • fontFamily:字體名稱

        // 字體類型
        fontFamily:'Georgia'
    
    

    效果:


    字體類型
  • fontStyle('normal', 'italic'):字體風(fēng)格

        // 字體風(fēng)格
        fontStyle:'italic'
    
    

    效果:


    字體風(fēng)格
  • fontWeight('normal', 'bold', '100 ~ 900'):指定字體的粗細(xì)虎锚。大多數(shù)字體都支持'normal'和'bold'值硫痰。并非所有字體都支持所有的數(shù)字值。如果某個值不支持窜护,則會自動選擇最接近的值

        // 字體粗細(xì)
        fontWeight:('bold', '700')
    
    

    效果:


    字體粗細(xì)
  • textShadowOffset(width: number, height: number):設(shè)置陰影效果

  • textShadowColor:陰影效果顏色

        // 陰影
        textShadowOffset:{width:3, height:5},
        // 陰影顏色
        textShadowColor:'black'
    
    

    效果:


    陰影效果和陰影顏色
  • textShadowRadius:陰影效果圓角(值越大陰影越模糊)

        // 陰影圓角
        textShadowRadius:3
    
    

    效果:


    陰影圓角
  • letterSpacing:字符間距

        // 字符間距
        letterSpacing:5
    
    

    效果:


    字符間距
  • lineHeight:行高

        // 行高
        lineHeight:25
    
    

    效果:


    行高
  • textAlign('auto', 'left', 'right', 'center', 'justify'):文本對齊方式

    • auto


        // 文本對齊方式
        textAlign:'auto'
    
    

    效果:


    auto
    • left


        // 文本對齊方式
        textAlign:'left'
    
    

    效果:


    left
    • right


        // 文本對齊方式
        textAlign:'right'
    
    

    效果:


    right
    • center


        // 文本對齊方式
        textAlign:'center'
    
    

    效果:


    center
    • justify


        // 文本對齊方式
        textAlign:'justify'
    

    效果:


    justify
  • textDecorationLine('none', 'underline', 'line-through'):橫線位置

    • none:沒有橫線
    • underline:


        // 橫線
        textDecorationLine:'underline'
    
    

    效果:


    underline
    • line-through:


        // 橫線
        textDecorationLine:'line-through'
    
    

    效果:


    line-through
  • textDecorationStyle('solid', 'double', 'dotted', 'dashed'):線風(fēng)格

    • solid


        // 橫線風(fēng)格
        textDecorationStyle:'solid'
    
    

    效果:


    solid
    • double


        // 橫線風(fēng)格
        textDecorationStyle:'double'
    
    

    效果:


    double
    • dotted


        // 橫線風(fēng)格
        textDecorationStyle:'dotted'
    
    

    效果:


    dotted
    • dashed


        // 橫線風(fēng)格
        textDecorationStyle:'dashed'
    
    

    效果:


    dashed
  • textDecorationColor:線的顏色

        // 線的顏色
        textDecorationColor:'black',
    
    

    效果:


    線的顏色
  • allowFontScaling:控制字體是否要根據(jù)iOS的“文本大小”輔助選項(xiàng)來進(jìn)行縮放

  • adjustsFontSizeToFit:指定字體是否隨著給定樣式的限制而自動縮放

  • minimumFontScale:當(dāng)adjustsFontSizeToFit開啟時效斑,指定最小的縮放比(即不能低于這個值)≈悖可設(shè)定的值為0.01 - 1.0

  • suppressHighlighting:當(dāng)為true時缓屠,如果文本被按下,則沒有任何視覺效果护侮。默認(rèn)情況下敌完,文本被按下時會有一個灰色的、橢圓形的高光

  • selectable:決定用戶是否可以長按選擇文本羊初,以便復(fù)制和粘貼

        render() {
            return (
                <View style={styles.container}>
                    <Text style={styles.textStyle}
                        selectable={true}
                    >
                        雨澤Forest
                    </Text>
                </View>
            );
        }
    
    

    效果:


    selectable.gif
  • testID:用來在端到端測試中標(biāo)記這個視圖

  • onPress:當(dāng)文本發(fā)生點(diǎn)擊的時候調(diào)用該方法

        render() {
            return (
                <View style={styles.container}>
                    <Text style={styles.textStyle}
                        onPress={()=>{alert('點(diǎn)擊')}}
                    >
                        雨澤Forest
                    </Text>
                </View>
            );
        }
    
    

    效果:


    onPress.gif
  • onLongPress:當(dāng)文本被長按以后調(diào)用此回調(diào)函數(shù)(參考o(jì)nPress)

  • onLayout:當(dāng)掛載或者布局變化以后調(diào)用(參數(shù)為:{nativeEvent: {layout: {x, y, width, height}}})(參考o(jì)nPress)

Text 使用


  • 視圖部分

        render() {
            return (
                <View style={styles.container}>
                    <Text style={styles.textStyle}>雨澤Forest</Text>
                </View>
            );
        }
    
    
  • 樣式部分

        var styles = StyleSheet.create({
            container: {
                flex: 1,
                justifyContent: 'center',
                alignItems: 'center',
                backgroundColor: 'green',
            },
    
            textStyle: {
                // 背景色
                backgroundColor:'yellow',
                // 字體大小
                fontSize:30,
                // 下劃橫線
                textDecorationLine:'underline'
            }
    
        });
    
    

    效果:

Text 組件的嵌套使用


  • 視圖部分

        var test = React.createClass({
            render() {
                return (
                    <View style={styles.container}>
                        <Text style={styles.textStyle} numberOfLines={3}>
                        雨澤
                        <Text style={{color:'orange'}}>
                                Forest
                        </Text>
                        </Text>
                    </View>
                );
            }
        });
    
    
  • 樣式部分

        var styles = StyleSheet.create({
            container: {
                flex: 1,
                justifyContent: 'center',
                alignItems: 'center',
                backgroundColor: 'green',
            },
    
            textStyle: {
                // 字體顏色
                color:'blue',
                // 字體大小
                fontSize:30
            }
    
        });
    
    

    效果:


    嵌套使用

Text 組件中樣式的繼承


  • 在 React Native 中是沒有樣式繼承這種說法的蠢挡,但對于 Text 元素里邊的 Text 元素,其實(shí)是可以繼承的凳忙,至于是單繼承還是多繼承业踏,我們可以來試驗(yàn)一下

    • 視圖部分


        var test = React.createClass({
            render() {
                return (
                    <View style={styles.container}>
                        <Text style={styles.textStyle} numberOfLines={3}>
                            <Text>
                                <Text>雨澤Forest</Text>
                            </Text>
                        </Text>
                    </View>
                );
            }
        });
    
    
    • 樣式部分


        var styles = StyleSheet.create({
            container: {
                flex: 1,
                justifyContent: 'center',
                alignItems: 'center',
                backgroundColor: 'green',
            },
    
            textStyle: {
                // 字體顏色
                color:'blue',
                // 字體大小
                fontSize:30
            }
    
        });
    
    

    效果:


    樣式繼承關(guān)系
  • 通過試驗(yàn)我們可以看出,文字控制類的屬性也是多繼承的涧卵,和 CSS 是一樣的,而且會取與自己最近的屬性歸自己所用勤家,也就是說屬性可覆蓋

很多朋友私信我說更新太慢,在這里說聲抱歉柳恐,因?yàn)榻咏汗?jié)伐脖,公司事情比較多,還請朋友們見諒乐设,喜歡我的文章的可以點(diǎn)點(diǎn)關(guān)注讼庇,有什么不清楚或者建議可以評論或留言,謝謝近尚!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蠕啄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌歼跟,老刑警劉巖和媳,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哈街,居然都是意外死亡留瞳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門骚秦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來她倘,“玉大人,你說我怎么就攤上這事作箍∮擦海” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵蒙揣,是天一觀的道長靶溜。 經(jīng)常有香客問我开瞭,道長懒震,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任嗤详,我火速辦了婚禮个扰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘葱色。我一直安慰自己递宅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布苍狰。 她就那樣靜靜地躺著办龄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪淋昭。 梳的紋絲不亂的頭發(fā)上俐填,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音翔忽,去河邊找鬼英融。 笑死,一個胖子當(dāng)著我的面吹牛歇式,可吹牛的內(nèi)容都是我干的驶悟。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼材失,長吁一口氣:“原來是場噩夢啊……” “哼痕鳍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起龙巨,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤额获,失蹤者是張志新(化名)和其女友劉穎够庙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抄邀,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耘眨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了境肾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剔难。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖奥喻,靈堂內(nèi)的尸體忽然破棺而出偶宫,到底是詐尸還是另有隱情,我是刑警寧澤环鲤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布纯趋,位于F島的核電站,受9級特大地震影響冷离,放射性物質(zhì)發(fā)生泄漏吵冒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一西剥、第九天 我趴在偏房一處隱蔽的房頂上張望痹栖。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溺健。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钦讳,地道東北人矿瘦。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像愿卒,于是被迫代替她去往敵國和親缚去。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

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

  • 前言 學(xué)習(xí)本系列內(nèi)容需要具備一定 HTML 開發(fā)基礎(chǔ)琼开,沒有基礎(chǔ)的朋友可以先轉(zhuǎn)至 HTML快速入門(一) 學(xué)習(xí) 本人...
    珍此良辰閱讀 20,653評論 15 16
  • 前言 學(xué)習(xí)本系列內(nèi)容需要具備一定 HTML 開發(fā)基礎(chǔ)易结,沒有基礎(chǔ)的朋友可以先轉(zhuǎn)至 HTML快速入門(一) 學(xué)習(xí) 本人...
    珍此良辰閱讀 7,274評論 33 15
  • 前言 學(xué)習(xí)本系列內(nèi)容需要具備一定 HTML 開發(fā)基礎(chǔ),沒有基礎(chǔ)的朋友可以先轉(zhuǎn)至 HTML快速入門(一) 學(xué)習(xí) 本人...
    珍此良辰閱讀 4,511評論 2 19
  • View 個人感覺View就類似于html中的div標(biāo)簽,支持flexbox布局搞动。 一個簡單的練習(xí)躏精,類似攜程的格子...
    45b645c5912e閱讀 1,172評論 0 0
  • ?讀《戰(zhàn)國風(fēng)云》的目的很簡單矗烛,為自己將要開的戰(zhàn)國篇的《謚號讀人》多準(zhǔn)備點(diǎn)材料。當(dāng)然小白是有壓力的箩溃,畢竟戰(zhàn)國史太亂瞭吃,...
    白發(fā)漁樵江渚閱讀 1,797評論 13 10