Como obtenho a largura da tela no React nativo?
(Eu preciso porque eu uso alguns componentes absolutos que se sobrepõem e sua posição na tela muda com diferentes dispositivos)
react-native
Zygro
fonte
fonte
Dimensions.get('window').width
?Simplesmente declare este código para obter a largura do dispositivo
Talvez seja obviamente, mas Dimensions é uma importação nativa de reação
As dimensões não funcionam sem isso
fonte
Se você tiver um componente de estilo que possa exigir de seu componente, poderá ter algo assim na parte superior do arquivo:
E então você pode fornecer
fulscreen: {width: window.width, height: window.height},
em seu componente Estilo. Espero que isto ajudefonte
React Native Dimensions é apenas uma resposta parcial a esta pergunta. Vim aqui procurando o tamanho real do pixel da tela, e Dimensions realmente fornece um tamanho de layout independente da densidade.
Você pode usar React Native Pixel Ratio para obter o tamanho real do pixel da tela.
Você precisa da instrução de importação para Dimenions e PixelRatio
Você pode usar a desestruturação de objeto para criar globais de largura e altura ou colocá-la em folhas de estilo como outros sugerem, mas cuidado com a reorientação do dispositivo.
Dos documentos do React Native Dimension :
PixelRatio Docs link para quem está curioso, mas não muito mais lá.
Para realmente obter o tamanho da tela, use:
ou se você não quiser que a largura e a altura sejam globais, você pode usar em qualquer lugar como este
fonte
O React Native vem com a api "Dimensions" que precisamos importar do 'react-native'
Então,
fonte
Resposta de 10 de abril de 2020:
A resposta sugerida usando
Dimensions
agora é desencorajada. Veja: https://reactnative.dev/docs/dimensionsA abordagem recomendada é usar o
useWindowDimensions
gancho no React; https://reactnative.dev/docs/usewindowdimensions que usa uma API baseada em gancho e também atualizará seu valor quando o valor da tela mudar (na rotação da tela, por exemplo):Observação:
useWindowDimensions
está disponível apenas no React Native 0.61.0: https://reactnative.dev/blog/2019/09/18/version-0.61fonte
Apenas duas etapas simples.
import { Dimensions } from 'react-native'
no topo do seu arquivo.const { height } = Dimensions.get('window');
agora a altura da tela da janela é armazenada na variável height.
fonte
Acabei de descobrir o
react-native-responsive-screen
repo aqui . Achei muito útil.fonte
Acho que usar
react-native-responsive-dimensions
pode te ajudar um pouco melhor no seu caso.Você ainda pode obter:
largura do dispositivo usando e
responsiveScreenWidth(100)
e
altura do dispositivo usando e
responsiveScreenHeight(100)
Você também pode organizar com mais facilidade as localizações de seus componentes absolutos, definindo margens e valores de posição com a proporção de mais de 100% da largura e altura
fonte