具有不同字体大小(首字母,首字母)的 react-native 嵌套文本

Posted

技术标签:

【中文标题】具有不同字体大小(首字母,首字母)的 react-native 嵌套文本【英文标题】:react-native nested text with differnt fontsizes (initial, first letter) 【发布时间】:2017-10-30 16:15:16 【问题描述】:

我目前在 react-native 中编写了一个新闻阅读器应用程序,并希望将文章的第一个字母设置为首字母,如下所示:

我第一次尝试使用嵌套文本方法。代码附在下面。这是我目前的结果:

渲染函数中的代码:

<View style=styles.container>
    <Text style=styles.text>
        <Text style=styles.initial>W</Text>
        <Text>
            elcome to React Native! To get started, edit index.android.js To get started, edit index.android.js To get started, edit index.android.js
        </Text>
    </Text>
</View>

我的样式表:

const fontSize = 14;

const styles = StyleSheet.create(
    container: 
        flex: 1,
        backgroundColor: '#F5FCFF',
    ,
    initial: 
        fontSize: fontSize * 2,            
    ,
    text: 
        fontSize: fontSize,
        color: '#333333',
    ,
);

我的问题: 如何设置第一个字符的样式以获得漂亮的首字母?

环境

反应:16.0.0-alpha.6 反应原生:0.44.2 模拟 Nexus 5 上的 Android 6.0

【问题讨论】:

【参考方案1】:

这是一种方法:

export default class DemoProject extends Component 
  render() 
    return (
      <View style=styles.container>
        <Text style=[styles.textCommon, styles.firstLetter]>W</Text>
        <Text>elcome</Text>
      </View>
    );
  


const styles = StyleSheet.create(
  container: 
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
    flexDirection: 'row'
  ,
  textCommon: 
    color: '#333333',
  ,
  firstLetter: 
    fontSize: 23,
  
);

【讨论】:

谢谢你的回答:) 我试过了。就一个字就可以了。但是如果你在 'elcome' 之后添加整个段落,它就不会达到预期的效果。 尝试使用文本“欢迎我亲爱的朋友,你好吗?”仍然对我有用。您的意思是换行段落吗? 是的,我的意思是一个有很多换行符的段落。看看我的第一个 picture 以获得更好的印象。使用这种方法更接近:在容器样式中:justifyContent: 'flex-start', alignItems: 'flex-start', 但它并不完美;)以下段落应围绕“W”流动。【参考方案2】:

我认为这是您问题的最佳解决方案

How can I make the first letter push itself into the paragraph like a newspaper style?

只需将 css 转换为 react-style

【讨论】:

感谢您的回答! :) 你如何将.text-article:first-letter 转换为 react-native?【参考方案3】:

你也可以试试这种方式,为父Text元素添加常规样式,为“W”文本子元素添加所需样式。

export default class DemoProject extends Component 
  render() 
    return (
      <View style=styles.container>
        *<Text>
          <Text style=[styles.textCommon, styles.firstLetter]>W</Text>
        elcome</Text>*
      </View>
    );
  



  text: 
        fontSize: fontSize,
        color: '#333333',
    

【讨论】:

以上是关于具有不同字体大小(首字母,首字母)的 react-native 嵌套文本的主要内容,如果未能解决你的问题,请参考以下文章

css 大首字母,圆角,导入谷歌字体

JSX语法及特点介绍

java中,中文首字母搜索是怎么实现的?

万变不离核心基础第五关——改变字符串首字母的大小写/字符串中包含多个单词,改变每个单词首字母的大小写

字符串整体大小写转换,首字母大小写

java中哪些首字母需要大写