【问题标题】:Height of View wrong in React Native on Pixel 3aPixel 3a 上的 React Native 中的视图高度错误
【发布时间】: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


    【解决方案1】:

    因此,对于组件尺寸,似乎 8 的乘数在所有 Android 设备上最可靠。除了 8 的乘数之外,实际上有可能从给定的高度/宽度属性中渲染出一小部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多