react-native - React Native:如何渲染“下标”?
问题描述
我需要创建一个具有一项额外挑战性要求的简单项目:
我需要在某些文本上实现“下标”(如果存在这样的词)。
原文如下所示,我需要在移动应用中放入相同的样式:
the quick brown fox jumps over // <-- normal text
+ - - + - = // <-- "underscripts", directly under specific letters
到目前为止,我只需要“下标”三个字符:+、-、=
我发现的一种解决方案是将样式更改为上标或下标。这是一个很好的方法,但是在将其与确切的字母对齐时会出现问题。没有关于加号和减号的位置的模式。这些位置将根据我尝试编码的原始文本进行硬编码(或在配置文件中设置)。
有没有一些更简单和程序化的方式来做到这一点?
解决方案
正如@Guruparan Giritharan 所建议的那样,我同时制作了一个自定义组件和样式。
我只是在给定的字符串中嵌入了 + 和 - 。下标只是原始字符串的透明版本。如果它不是 + 和 -,则使其透明。如果是,则将其打印出来。
function TextUnderScript({ inputString }) {
const underScripts = []
var inputLength = inputString.length
for (var i = 0; i < inputLength; i++) {
if(inputString.charAt(i) === '+') {
underScripts.push( <Text style={styles.readFont}>+</Text> )
i++
} else if(inputString.charAt(i) === '-') {
underScripts.push( <Text style={styles.readFont}>-</Text> )
i++
} else if(inputString.charAt(i) === '=') {
underScripts.push( <Text style={styles.readFont}>=</Text> )
i++
} else {
underScripts.push( <Text style={styles.readFontTransparent}>{inputString.charAt(i)}</Text> )
}
}
...
}
(不妨将此标记为答案然后xD)
推荐阅读
- java - 为什么我们将类型分配给与 Java 中对象的引用类型不同的对象?
- python - Logit 中的所有非显着性或 NAN p 值
- python-3.x - Django和format_html,获取格式化和未格式化的重复文本
- python - python:根据另一个dict值从dict中删除值
- python - 加入两个 Pandas 数据框,在特定列中保留特定字符串
- python - Python Pandas Dataframe idxmax 太慢了。备择方案?
- bash - Bash 脚本:在 curl 数据中使用变量时出错
- python - 使用 Python 代码进行深度学习不再有效。“TypeError:函数构建代码之外的操作正在传递一个“图形”张量。”
- python - 无法在scrapy中使用css选择器抓取下一个兄弟
- jpa - java/jakarta EE 容器不调用 JPA EntityManager.flush()