当前位置: 首页 > 知识库问答 >
问题:

React本机字体比例

全昊焜
2023-03-14

我在视图内部缩放字体有问题,或者更好地说在Android版React Native中的文本组件内部缩放字体有问题。问题是,我想文本组件内部的文本自动缩放取决于字符串的长度(如果文本可以适合视图中所需的字体大小,则不做任何事情,如果对于这种字体大小来说,它的字符串太长,则设置较小的字体大小)。

例如:

<代码>

在这种情况下(1.)文本将呈现在一行中,字体大小为22。

<代码>

在秒(2。)场景文本将在一行中呈现,带有...在末尾,字体大小也是20。但是,我想字体自动缩小,如果内容不能适应一行文本组件。

我寻找解决方案,发现在iOS上,你可以通过文本中的如下属性轻松解决这个问题:

<代码>

这不适用于Android,所以我真的需要帮助:/

如果有人知道我如何实现字体自动改变大小以适应一行文本的内部,我将非常感激。

提前谢谢你!

共有2个答案

姚伟
2023-03-14

问题是您需要指定Text元素的宽度。请看一下链接。

东方谦
2023-03-14

如果您有文本的最大宽度和字符长度,可以计算适合的fontSize。类似于textWidth/textLength=fontWidth。然而,fontWidth(每个字符的可用宽度)不太可能与相应的fontSize完全相同。但是,如果找到字体中最宽的字符,并找到其宽度与fontSize之间的相关性,则可以通过fontSize/fontWidth=c计算fontSize。因此,宽度始终小于最大值。

例如,我发现对于Roboto Light字体,字体大小为30导致m的宽度为28,8px,在这种情况下是最宽的字符。因此,字体大小比实际宽度大 30/28,8 倍。所以我们可以通过文本宽度/文本长度=字体大小/(30 / 28,8)来计算它

如果您的字符中有任何额外的行间距,可以调整此值,如果您想要最小字体大小,可以使用Math.max(updatedFontSize, miniumFontSize)

 类似资料:
  • 我们是否可以使用单个关键字而不是从'react-native‘中导入{Text,TextInput,Button,StyleSheet,View};“在react Native中?”text、TextInput、Button、StyleSheet、view“是否有可用的单个关键字选项?

  • 我需要一个React Native组件,它只允许输入数字字符(0-9)。我可以将设置为,这几乎可以让我在那里输入,除了句点()。但是,这并不能阻止将非数字字符粘贴到字段中。 到目前为止,我想出的是使用事件来查看输入的文本。我从文本中删除任何非数字字符。然后将文本放在状态字段中。然后通过它的值属性更新。代码片段如下。 这似乎工作,但它似乎像一个黑客。还有别的办法吗?

  • 我遵循Android安装React导航的所有说明。 首先,“npm安装--Save React-Navigation”,“npm安装--Save React-Native-Gesture-Handler”。“react-native link react-native-gesture-handler”,最后,更新了我的 这是我得到的错误: 错误所在:在创建目录'd:\react Native pr

  • 问题内容: 我尝试按照此处的指南,为Android上的TextView使用自定义字体。使用相同的字体,相同的代码,相同的所有内容,我在adb logcat中得到此信息: 我使用的是Molot.otf字体,该字体已在其中一个博客中成功使用。我还使用predator.ttf,这是另一种自定义字体,但格式为TrueType。 相关代码: 和 是什么原因造成的?它对博客中的人有用,那为什么不呢?API中是

  • 在React Native中,我为所有使用Rubik字体的文本定义了字体系列,但某些设备(三星 我不知道为什么有时有些文本看起来像是用自定义设备字体覆盖 环境: 操作系统:macOS HighSierra 节点:9.3.0 纱线:1.3.2 npm:5.7.0 守望者:4.9.0 包: react-native: “^0.47.2, 反应: “^16.0.0-alpha.12, react-nat