Estou criando um formulário no React Native e gostaria de fazer TextInput
80% da largura da tela.
Com HTML e CSS comum, isso seria simples:
input {
display: block;
width: 80%;
margin: auto;
}
Exceto que o React Native não oferece suporte à display
propriedade, larguras de porcentagem ou margens automáticas.
Então, o que devo fazer? Há alguma discussão sobre esse problema no rastreador de problemas do React Native, mas as soluções propostas parecem hacks desagradáveis.
javascript
css
reactjs
react-native
Mark Amery
fonte
fonte
react-native
usaflex
para tamanhos e posições dos elementos. Não tenho certeza, mas pode ser oflex-basis
que você precisa: Verifique isto e istoflex: 0.8
pode fazer o trabalho.Respostas:
A partir de React Native 0,42
height:
ewidth:
aceitar porcentagens.Use
width: 80%
em suas folhas de estilo e ele simplesmente funciona.Captura de tela
Largura / altura da criança de exemplo ao vivo
como proporção do pai
Código
fonte
Isso deve atender às suas necessidades:
fonte
Se você está simplesmente procurando fazer a entrada em relação à largura da tela, uma maneira fácil seria usar Dimensões:
Eu montei um projeto de trabalho aqui . O código também está abaixo.
https://rnplay.org/apps/rqQPCQ
fonte
Em seu StyleSheet, basta colocar:
ao invés de:
Continue codificando ........ :)
fonte
Você também pode tentar a folha de estilo react-native-extended-style que suporta porcentagem para aplicativos de orientação única:
fonte
A técnica que uso para obter a largura percentual do pai é adicionar uma visualização de espaçador extra em combinação com algum flexbox. Isso não se aplica a todos os cenários, mas pode ser muito útil.
Aqui vamos nos:
Basicamente, a propriedade flex é a largura relativa ao flex "total" de todos os itens no flex container. Portanto, se todos os itens somam 100, você tem uma porcentagem. No exemplo, eu poderia ter usado os valores flex 6 e 4 para o mesmo resultado, então é ainda mais FLEXível.
Se você deseja centralizar a visualização da largura percentual: adicione dois espaçadores com metade da largura. Portanto, no exemplo seria 2-6-2.
É claro que adicionar visualizações extras não é a coisa mais legal do mundo, mas em um aplicativo do mundo real, posso imaginar que o espaçador terá conteúdo diferente.
fonte
Eu tenho uma solução atualizada (final de 2019), para obter 80% de largura do pai responsivamente com ganchos funciona mesmo se o dispositivo girar.
Você pode usar
Dimensions.get('window').width
para obter a largura do dispositivo neste exemplo, você pode ver como pode fazer isso responsivamentefonte
Foi assim que consegui a solução. Simples e doce. Independente da densidade da tela:
fonte
A maneira mais fácil de conseguir é aplicando largura para ver.
fonte