react-native - minHeight 基于常量 numberOfLines - 'rem' 中的 fontSize
问题描述
<View style={{minHeight: ??? }}> // <--- based on a constant maximum value of numberOfLines
<Text style={{fontSize: '1rem'}}>{someShortOrLongText}<Text>
</View>
在一个<View />
我想渲染一个<Text />
有时是 1 行长,有时是 2 甚至 3 行长的。
因为它是<View />
基于 {someShortOrLongText} 长度的调整大小。
我正在研究一种解决方案,以在任何渲染之前解析所有可能的文本并存储最大的行数(对于最坏的情况)。为了保持一致性,我想保留一个 minHeight 等于<Text />
在这种情况下将占据的最大高度。
我可以强迫它更大,但我正在寻找一个完美的匹配,不浪费任何比实际 3 行(在这种情况下)占用的空间更多的空间。
rem
如果我使用单位来实现这一点,有什么办法fontSize
吗?
像这样的身高是好还是坏的做法:
<View style={{minHeight: '$constantEqualToFontSize * maxNumOfLines'}} />
解决方案
如果您想根据文本大小呈现文本并将其放在视图中,这可以帮助您。
return (
<View style={{flex: 1}}>
<View style={{
borderRadius: 30,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: '#ffd5ab',
padding: 15, maxWidth: 300
}}>
<Text style={{flexShrink: 1}}>
{someShortOrLongText}
</Text>
</View>
</View>
);
此处inner view
将根据您输入的文本调整大小,您也可以将其定位inner view
为absolute
.
推荐阅读
- node.js - 无法让 AWS lambda 等待异步请求调用完成
- highcharts - 如何更改highcharts中旭日形图右上角的向下钻取按钮的标题?
- python - 来自谷歌云视觉 API OCR 的逐行数据
- javascript - 如何在 JavaScript 中将纯文本转换为 Json 对象
- git - CVS2GIT 迁移失败 - 致命:标记:6885 未声明
- spring - 如何在 Spring Boot 配置中显式传递数据库名称?
- angularjs - ng-repeat:通过指令忽略多次插入相同的角度模板
- ios - 如何使用 swift 4 使用 post 功能将图像文件发送到服务器
- python - Python 给出 ImportError: No module named sqlalchemy.util._collections in pycharm
- java - JavaFX:有对话窗口时的Platform.exit()