Estoy tratando de hacer un elemento de altura 30 en React Native. Sin embargo, en Android Pixel 3a, la altura del elemento se resuelve cerca de 30, pero no del todo.
El siguiente fragmento de código da como resultado que el elemento tenga una altura de 30.18181800842285. Parece que solo sucede en Pixel 3a. Tanto en emulador como en dispositivo real (probado en Browserstack)
En realidad, parece que está sucediendo en casi todos los teléfonos 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, }} /> );¿Alguna idea de cuál podría ser la razón? Estoy tratando de implementar mi propio selector de desplazamiento usando una vista de desplazamiento y esto lo está arruinando por completo. (pero solo en Pixel 3a)
Enlace al repositorio: https://github.com/Waltari10/scrollviewbugreactnative
EDITAR: Hice algunas pruebas en diferentes alturas de elementos en diferentes dispositivos
iPhone 13, iPhone 13 mini, la proporción de píxeles es 3
todo exacto
iphone 8, relación de píxeles es 2
todo exacto
3,4 WQVGA_API_32, la proporción de píxeles es 0,75
exacto: 24, 28, 32
5,4 mdpi, proporción de píxeles: 1
exacto: 28, 29, 30, 31
Pixel XL, 560 DPI, proporción de píxeles de 3,5
exacto: 24, 26, 28
Pixel 5, 440 ppp, proporción de píxeles: 2,75
exacto: 32, 28, 24
no exacto: 33, 31, 30, 29
La relación Pixel 3a es 2,75, xxhdpi, 440 ppp
exacto: 12, 16, 20, 24, 28, 32, 36, 40, 44, 48
No exacto: 30, 31, 32,33,34
Relación Galaxy Nexus es 2, xhdpi, 440dpi
exacto: 12 - 20
no exacto: ???
8 API desplegable 31, 2200 x 2480 ppp, xxhdpi, relación 2,625
exacto: 16, 24, 32, 40
no exacto: 14, 15, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31
Control deslizante FWVA 3.7 API 29, hdpi, 480 x 854, relación 1.5
exacto: 40, 38, 36, 34, 33
no exacto: 39, 37, 35
Por lo tanto, parece que los multiplicadores de 8 funcionan de manera más confiable en todos los dispositivos Android para las dimensiones de los componentes. Aparte de los multiplicadores de 8, existe la posibilidad de que se represente una fracción del accesorio de altura/ancho dado.