【发布时间】:2021-12-29 15:31:05
【问题描述】:
我正在尝试在 React Native 中制作一个高度为 30 的元素。然而,在 Android Pixel 3a 上,元素的高度解析为接近 30,但不完全是 30。
以下代码 sn-p 生成高度为 30.18181800842285 的元素。它似乎只发生在 Pixel 3a 上。在模拟器和真实设备上都可以(在 Browserstack 上测试)
实际上看起来几乎所有 Pixel 手机都在发生这种情况。
import React from 'react';
import {View} from 'react-native';
export default () => (
<View
onLayout={layout => {
console.log('appText height', layout.nativeEvent.layout.height); // Should be 30, but says 30.18181800842285
}}
style={{
height: 30,
}}
/>
);
知道可能是什么原因吗?我正在尝试使用滚动视图实现我自己的滚动选择器,这完全搞砸了。 (但仅在 Pixel 3a 上)
回购链接:https://github.com/Waltari10/scrollviewbugreactnative
编辑:我在不同设备上对不同元素高度进行了一些测试
iPhone 13、iPhone 13 mini,pixelRatio 为 3
一切都准确
iphone 8,pixelRatio 为 2
一切都准确
3.4 WQVGA_API_32,像素比为0.75
精确:24、28、32
5.4 mdpi,像素比:1
精确:28、29、30、31
Pixel XL,560 DPI,像素比例为3.5
精确:24、26、28
像素 5,440dpi,像素比:2.75
精确:32、28、24
不准确:33、31、30、29
像素 3a 比例为 2.75,xxhdpi,440dpi
精确:12、16、20、24、28、32、36、40、44、48
不准确:30、31、32、33、34
Galaxy nexus ratio 为 2,xhdpi,440dpi
精确:12 - 20
不准确:???
8 Fold-Out API 31, 2200 x 2480dpi, xxhdpi, ratio is 2.625
精确:16、24、32、40
不准确:14、15、17、18、19、20、21、22、23、25、26、27、28、29、30、31
3.7 FWVA 滑块 API 29,hdpi,480 x 854,比率为 1.5
精确:40、38、36、34、33
不准确:39、37、35
【问题讨论】:
标签: javascript android react-native