const navigator = useNavigator()
navigator.setStyle({})import {
OptionsTopBar,
ImageResource,
} from 'react-native-navigation';
import { NavigatorButtons } from '~/core/reactNavigationAdapter/types/optionsConverter';
type ThemeColor = {
dark?: string,
light?: string
}
type ModalPresentationStyle = 'formSheet' |
'pageSheet' |
'overFullScreen' |
'overCurrentContext' |
'currentContext' |
'popover' |
'fullScreen' |
'none'| Propriedade | Tipo | Android | iOS |
|---|---|---|---|
| backButtonHidden | boolean |
Remover o botão voltar | Remover botão voltar |
| disableBackGesture | boolean |
Remover o botão | Desabilita o voltar nativo |
| backButtonImage | ImageResource |
Alterar ícone do botão voltar | Alterar ícone do botão voltar |
| navBarButtonColor | string or ThemeColor |
Alterar cor do ícone do botão voltar | Alterar cor do ícone do botão voltar |
| hideBackButtonTitle | boolean |
Remover texto do botão | Em breve |
| screenBackgroundColor | string or ThemeColor |
Alterar cor do background | Alterar cor do brackground |
| layout | OptionsLayout |
Configurar o Layout | Configurar o Layout |
| statusBarTextColorScheme | 'dark' or 'light' |
Alterar cor do texto da status bar | Alterar cor do texto da status bar |
| modalPresentationStyle | ModalPresentationStyle |
Configurar modo de apresentação do modal | Configurar modo de apresentação do modal |
| topBar | OptionsTopBar |
Configurar topbar | Configurar topbar |
| topBarElevationShadowEnabled | number |
Elevação da barra de navegação (sombra) | - |
| navBarHidden | boolean |
Remover header de navegação | Remover header de navegação |
| navBarTransparent | boolean |
Header de navegação transparente | Header de navegação transparente |
| tabBarHidden | boolean |
Remover tabs de navegação | Remover tabs de navegação |
| navBarBackgroundColor | string or ThemeColor |
Alterar background header de navegação | Alterar background header de navegação |
| drawUnderNavBar | boolean |
Header de navegação sobe e deixa a toolbar separada | Header de navegação sobe e deixa a toolbar separada |
| navBarNoBorder | boolean |
- | Desabilitar borda em baixo no header de navegação |
| title | string |
Texto do título do header de navegação | Texto do título do header de navegação |
| navBarTextColor | string |
Cor do texto do título do header de navegação | Cor do texto do título do header de navegação |
| navBarTextAlign | 'center' or 'fill' |
Alinhamento do texto do título do header de navegação | Alinhamento do texto do título do header de navegação |
| navigatorButtons | Partial<NavigatorButtons> |
Configurar botões do header de navegação | Configurar botões do header de navegação |
| drawUnderTabBar | boolean |
Ela ativa deixa a tabbar com um zindex maior que a tela, deixando ela por cima | Ela ativa deixa a tabbar com um zindex maior que a tela, deixando ela por cima |
Observações:
- Se estiver configurado algum botão com o
navigator.setButtonsa propriedadebackButtonHiddennão funcionará; - Configurar
topBar ou screenBackgroundColornão ser viável pois algumas estilizações padrões podem sobreescrever; - Com o
navBarHiddenainda continua o background preto, para remover 100% é preciso configurar onoToolbar: truenas configurações da tela; navBarTransparent: é mais viável cadastrar a tela comnoToolbar: true;- Podemos alterar o background do header de navegação pelo: `topBar: { background:{ color: 'color'} };
- O alinhamento do tipo
fillalinha o texto à esquerda; - Se precisar apenas alterar a imagem do botão voltar, utilizar o
backButtonImagee para alterar a cor utilizenavBarButtonColor;
- Para remover o voltar nativo do android:
import { useEffect } from 'react'
import { BackHandler } from 'react-native';
useEffect(() => {
const handler = BackHandler.addEventListener('hardwareBackPress', () => {
return true;
});
return () => {
handler.remove();
};
}, []);
Precisamos estudar uma melhor forma de fazer esse do
BackHandler, pq oq acontece ele só vai ser removido se o componente desmontar, quando estamos fazendopushem outras telas, a tela anterior não desmonta, logo o swipe fica bloqueado pra todas as telas depois dessa. Uma sugestão a ser estudada seria: