React Native 响应式字体大小

2023-11-22

我想问一下如何反应原生处理或做响应式字体。例如,在 iphone 4s 中,我的 fontSize: 14,而在 iphone 6 中,我的 fontSize: 18。


您可以使用像素比

例如:

var React = require('react-native');

var {StyleSheet, PixelRatio} = React;

var FONT_BACK_LABEL   = 18;

if (PixelRatio.get() <= 2) {
  FONT_BACK_LABEL = 14;
}

var styles = StyleSheet.create({
  label: {
    fontSize: FONT_BACK_LABEL
  }
});

Edit:

另一个例子:

import { Dimensions, Platform, PixelRatio } from 'react-native';

const {
  width: SCREEN_WIDTH,
  height: SCREEN_HEIGHT,
} = Dimensions.get('window');

// based on iphone 5s's scale
const scale = SCREEN_WIDTH / 320;

export function normalize(size) {
  const newSize = size * scale 
  if (Platform.OS === 'ios') {
    return Math.round(PixelRatio.roundToNearestPixel(newSize))
  } else {
    return Math.round(PixelRatio.roundToNearestPixel(newSize)) - 2
  }
}

Usage:

fontSize: normalize(24)

您可以更进一步,允许在每个<Text />按预定义尺寸的组件。

Example:

const styles = {
  mini: {
    fontSize: normalize(12),
  },
  small: {
    fontSize: normalize(15),
  },
  medium: {
    fontSize: normalize(17),
  },
  large: {
    fontSize: normalize(20),
  },
  xlarge: {
    fontSize: normalize(24),
  },
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native 响应式字体大小 的相关文章

随机推荐

  • 从 Powershell 启动 vNext 构建并获取工件

    为了自动化我们的部署 我想根据给定的 ChangeSetId 重建应用程序 一旦这个构建完成 我想得到文物构建 exe 的 所以我们可以部署它们 为了这个问题 我将重点放在 从构建中获取工件 部分 出于 DevOps 的目的 我想使用 Po
  • 如何在Makefile中设置子进程的环境变量

    我想更改这个Makefile SHELL bin bash PATH node modules bin PATH boot supervisor harmony watch etc lib extensions js json no res
  • 将 .NET DateTime 对象转换为 Javascript Date 对象

    我有以下问题 我从 SQL Server 检索 DateTime 对象 并通过 JSON 使用 ajax 将其传递给 Javascript 我在尝试将检索到的对象转换为 JavaScript 中的日期对象时遇到了困难 检索到的对象是一个值
  • SSRS:在两页报告上显示正确的执行时间?

    我只是想知道如何在报告上显示正确的执行时间 直到最近 我一直在报告的页脚中使用以下内容作为标签表达式 Execution Time IIf System DateTime Now Subtract Globals ExecutionTime
  • Jenkins 管道确定分支是否用于 Bitbucket 拉取请求

    我将 Jenkins 与Bitbucket分支源插件 一切都很好 但我希望能够根据分支是否与拉取请求关联来运行 排除管道中的某些阶段 例如 pipeline stages stage build compile stage package
  • iPad 分体式键盘

    我正在创建一个类似于 iPad 的 iMessage 应用程序的应用程序 用于发送消息 因此 当显示键盘时 有一个输入视图锚定在消息视图和输入附件视图的底部 此外 当键盘在停靠或脱离停靠时显示时 必须正确调整消息视图的大小 我遇到的问题是来
  • 检查对象是否是 Swift 中的给定类型

    我有一个由以下组成的数组AnyObject 我想迭代它 并找到所有属于数组实例的元素 如何在 Swift 中检查对象是否属于给定类型 如果您想检查特定类型 可以执行以下操作 if let stringArray obj as String
  • 编译boost时`threading=multi`到底做了什么?

    我不完全确定到底是什么threading multiflag 在构建 boost 时会起作用 文档说 Causes the produced binaries to be thread safe This requires proper s
  • 隐藏但仍用 GIT 保存分支?

    我有大量的分支 使用起来有点混乱 有时我不想完全删除该分支 但我暂时不会对其进行处理 在这种情况下 我采用了在分支前添加 前缀的约定 所以如果我从以下开始 branch1 branch2 branch3 当我完成了branch1但想保存它的
  • 阻止文本在网址中的句点上拆分为多行

    我有一个显示一些文本的 Android TextView 它是多行的 不过 在文中 我有时也会有域名 如何阻止 TextView 将行按句点分割 例如 是否有 unicode 不间断句点 要查看包装电子邮件地址时出现的问题 请运行 andr
  • 在 2d 环境中以百分比增量将对象从向量 A 移动到 B

    我知道向量 A 和 B 的坐标 如何计算这两个向量之间的第一个点 第一个向量 X 是向量 A 和 B 之间距离的 1 所以首先我将向量 A 中的对象移动到向量 B 1 附近 所以我需要计算向量 X 它是对象的新向量 直到它到达向量 B 你要
  • 从分隔文件加载数据到 mysql 表时跳过错误行

    我使用以下查询将数据从文本文件加载到 mysql 表 LOAD DATA INFILE myFile csv INTO TABLE some table COLUMNS TERMINATED BY OPTIONALLY ENCLOSED B
  • Jetpack Compose Navigation - 将本地文件位置作为字符串传递

    我正在尝试传递音频文件位置 storage emulated 0 Android media 作为第一个屏幕中的字符串home screen到第二个屏幕detail screen 当我正常传递上面的字符串作为参数时 我收到此错误 java
  • Python 进程使用的总内存?

    Python 程序有没有办法确定它当前使用了多少内存 我看过关于单个对象的内存使用情况的讨论 但我需要的是该进程的总内存使用情况 以便我可以确定何时需要开始丢弃缓存数据 Here是一个有用的解决方案 适用于各种操作系统 包括 Linux W
  • fetch response.text() 返回待处理的承诺

    我使用 jsonplaceholder URL 测试 fetch API 但我的函数返回 Promise State Pending 我不明白为什么 function getUsers url return fetch url const
  • CSS:删除选择元素内的填充

    我试图从选择元素中删除填充 以便其中的文本与其正下方的输入元素中的文本对齐 除其他外 我还尝试过以下操作 select padding left 0 有任何想法吗 JS小提琴在这里http jsfiddle net pLSkH 2 去除te
  • 当应用程序在后台运行时,如何让我的 AVPlayer 播放?

    我已经完成了我的作业 一直在阅读这里的文档 谷歌搜索 stackoverflowing 但是当用户让应用程序进入后台时仍然无法让我的声音保持不变 到目前为止我所做的 将 UIBackgroundModes 音频添加到 plist 文件中 首
  • 如何搜索redis哈希中的关键模式?

    我有一个哈希表 其键的模式为 USER TEL 如下所示 bob 123456 Some address mary 567894 other address john 123456 third address 现在 我想获取密钥中具有相同电
  • 使用 atos 通过 dSYM 确定崩溃的方法名称

    我有一个来自用户的控制台堆栈 不是崩溃报告 我试图确定我的应用程序中的哪个方法调用是最后一个站着的人 我知道他们使用的是哪个版本的应用程序 并且我有该发布 调试版本的副本 以及存档副本的 dSYM 文件 但是 当我尝试使用atos吐出内存地
  • React Native 响应式字体大小

    我想问一下如何反应原生处理或做响应式字体 例如 在 iphone 4s 中 我的 fontSize 14 而在 iphone 6 中 我的 fontSize 18 您可以使用像素比 例如 var React require react na