Tento criar um aplicativo nativo de reação que se parece com o aplicativo da web existente. Eu tenho um rodapé fixo na parte inferior da janela. Alguém tem idéia de como isso pode ser alcançado com o reagir nativo?
no aplicativo existente, é simples:
.footer {
position: fixed;
bottom: 0;
}
react-native
4ega
fonte
fonte
height
ao rodapé View e fica bem em 4s e 6Aqui está o código real com base na resposta de Colin Ramsay:
fonte
Estou usando rodapés fixos para botões no meu aplicativo. A maneira como eu implemento um rodapé fixo é assim:
E se precisar que o rodapé suba quando um teclado aparecer, por exemplo, você pode usar:
Em seguida, use {bottom: this.state.btnLocation} na sua classe de rodapé fixo. Eu espero que isso ajude!
fonte
import { Keyboard} from 'react-native'; Keyboard.addListener('keyboardWillShow', this.showHandler)
vez disso.Você obtém a dimensão primeiro e depois a manipula através do estilo flexível
Em renderização
O outro método é usar o flex
fonte
@Alexander Obrigado pela solução
Abaixo está o código exatamente o que você está procurando
Abaixo está a captura de tela
fonte
Você também pode dar uma olhada no NativeBase ( http://nativebase.io ). Essa é uma biblioteca de componentes para o React Native que inclui uma boa estrutura de layout ( http://nativebase.io/docs/v2.0.0/components#anatomy ), incluindo cabeçalhos e rodapés.
É um pouco como o Bootstrap for Mobile.
fonte
Coisas simples aqui:
fonte
Abaixo está o código para definir o rodapé e os elementos acima.
fonte
A maneira como fiz isso foi ter uma visualização (vamos chamá-la de P) com o flex 1, e, dentro dessa visualização, ter mais 2 visualizações (C1 e C2) com flex 0,9 e 0,1, respectivamente (você pode alterar as alturas do flex para os valores necessários) . Então, dentro do C1, tenha uma visualização de rolagem. Isso funcionou perfeitamente para mim. Exemplo abaixo.
fonte
Pode-se alcançar algo semelhante ao reagir nativamente com
position: absolute
Existem algumas coisas a ter em mente.
absolute
posiciona o elemento em relação ao seu pai.Uma definição de estilo prático seria algo como isto:
fonte
Eu achei o uso do flex a solução mais simples.
fonte
Quando flex é um número positivo, torna o componente flexível e será dimensionado proporcionalmente ao seu valor flex. Portanto, um componente com flex definido como 2 ocupará o dobro do espaço que um componente com flex definido como 1.
fonte
A melhor maneira é usar a propriedade justifyContent
se você tiver vários elementos de exibição na tela, poderá usar
fonte
então escreva esse estilo
funcionou como um encanto
fonte
Para problemas do Android com isso:
em app / src / AndroidManifest.xml, altere windowSoftInputMode para o seguinte.
Não tive absolutamente nenhum problema com isso no ios usando react-native e keyboardAwareScroll. Eu estava prestes a implementar uma tonelada de código para descobrir isso até que alguém me desse essa solução. Funcionou perfeitamente.
fonte
se você usar reagir nativo para usar o código a seguir
Além disso, você pode usar https://docs.nativebase.io/ no seu projeto nativo do react e depois fazer algo como o seguinte
React_Native
NativeBase.io
fonte
Defina android: windowSoftInputMode = "AdjustPan" no seu arquivo de manifesto e funcionará conforme o esperado.
fonte
Acho que o melhor e mais fácil seria o seguinte, basta colocar o restante da visualização em um conteúdo e rodapé em uma visualização separada.
ou você pode usar rodapé da base nativa
fonte
Sugestão 1
=> Corpo com rodapé fixo
Editar 2
=> Corpo e rodapé fixo com abas
Notas
Vantagens
Podemos usar este rodapé simples sem reagir à navegação inferior
fonte