我正在用Expo和React Native开发平板电脑应用程序(Android和iOS)。
我设法使布局响应而又没有遇到任何问题。在不同大小的设备上运行该应用程序后,我注意到我忘记了字体大小的响应能力。
我尝试了我能找到的所有npm库(react native responsive fontsize
、react national cross platform respondive dimensions)。对于其中任何一个,我遇到了相同的问题:在应用程序启动时,根据设备的方向,字体大小呈现不同的效果。(即,如果我在纵向模式下按住设备时打开应用程序,与在横向模式下打开应用程序时相比,字体大小明显更大,横向模式是我的应用程序的默认方向)。我试图在启动时将应用程序的屏幕方向锁定在横向,并在安装第一个组件后将其重置为默认值,但这也无济于事。
我得出的结论是,之所以会发生这种情况,是因为所有这些库都使用设备的维度来生成我传递给它们的内容的过程值,但只引用一个维度(宽度或高度),这根据初始设备方向不同而不同。
我试图实现我自己的解决方案,考虑一些基于宽度和高度的东西,而不仅仅是其中一个,并且我提出了这个功能:
const height = Dimensions.get('window').height;
const width = Dimensions.get('window').width;
export function proportionalSize(size) {
let aspectRatioSize = width * height;
let aspectRatioUnit = aspectRatioSize * 0.00001;
return parseFloat(size) * 0.1 * aspectRatioUnit;
}
这仅适用于我开发应用程序的设备……字体大小不会在其他屏幕大小不同的设备上保持相同的比例。
我失去了足够的时间来修改整个代码中的字体大小,尝试在库之间切换。你对我如何克服这个问题有什么想法,或者我错过了什么吗?我最初教导说,这将是我最小的问题,但我错了。
后期编辑:我注意到我的问题在重新加载应用程序后消失了。它只发生在第一次渲染,重新加载后,字体大小工作正常。
最好的方法是有两个秤,一个用于手机,另一个用于平板电脑
我认为基础计算是错误的...我无法让它在手机和平板电脑之间完全缩放,所以我改变了计算方法,使用基于< code >宽度/高度的纵横比...这修复了它在两个设备上显示完全相同。
import { Dimensions, Platform, PixelRatio } from 'react-native';
const {
width,
height,
} = Dimensions.get('window');
export function normalize(size, multiplier = 2) {
const scale = (width / height) * multiplier;
const newSize = size * scale;
return Math.round(PixelRatio.roundToNearestPixel(newSize));
}
请问react native如何处理或者做响应式字体?例如,在iphone 4s中,我的字体大小是:14,而在iphone 6中,我的字体大小是:18。
在反应原生应用程序中,处理字体大小的最佳方法是什么。 我有一个奇怪的问题,如果字体大小从移动设备显示设置增加,它也会改变应用程序的字体大小。我使用过字体Size:14(无论什么值),所以它根据移动设备字体大小选择大小14 我还尝试使用宽度和高度调整字体大小,但它在所有设备上看起来也不好。
我使用Zurb Foundation3网格创建了一个站点。每个页面都有一个大的: null null 当我将浏览器的大小调整为移动大小时,大字体不会调整,并导致浏览器包括一个水平滚动以适应大文本。 我注意到,在Zurb Foundation 3排版示例页面上,头适应浏览器的压缩和扩展。 我是不是错过了一些很明显的东西?我如何实现这一点?
我想根据响应本机中的屏幕宽度更改。 我想做这样的东西,预期的结果是在向添加数字时变得更小。 我尝试的资源: React Native响应字体大小 https://reactnativeexample.com/responsive-fontsize-based-on-screen-size-of-the-device-in-react-native/ 更多的不起作用。
问题内容: 我正在尝试使用引导程序来构建响应式布局,当前正在使用font-size:3em定义一些标题; 但是,当缩小布局时,这太大了。如何快速缩小文本大小? 问题答案: 最简单的方法是使用%或em中的尺寸。只需更改基本字体大小,一切都会改变。 减 您可以使用视口单位(vh,vw …),但它们 在Android <4.4上不起作用
null