Publicado em: 08/04/2024

Como Criar Tab Navigator?


Neste tutorial, vamos aprender a implementar um navegador por abas (Tab Navigator) usando o Expo Router, integrando-o com um Stack Navigator para criar uma estrutura de navegação robusta em aplicações React Native.

Estrutura Básica do Projeto

Começamos criando uma estrutura de diretórios especial:

  • (tabs)/ - Diretório entre parênteses para agrupar rotas
  • layout.tsx - Arquivo principal para configurar o Tab Navigator
  • index.tsx - Tela inicial obrigatória (home)
  • settings.tsx - Tela secundária de exemplo

Os diretórios entre parênteses são uma convenção do Expo Router para agrupar rotas sem incluir o nome do grupo na URL.

Configurando o Layout Principal

No arquivo layout.tsx raiz, definimos um Stack Navigator que renderizará nosso Tab Navigator:

1import { Stack } from "expo-router";
2export default function Layout() {
3 return ( <Stack>
4 <Stack.Screen name="(tabs)" options={{ headerShown: false }} /> 
5</Stack> );}

Esta configuração oculta o cabeçalho padrão do Stack Navigator para nossas telas de abas.

Criando o Tab Navigator

Dentro do diretório (tabs), criamos um novo layout.tsx específico para as abas:

1import { Tabs } from "expo-router";
2 import { FontAwesome } from "@expo/vector-icons";
3export default function TabsLayout() {
4 return ( <Tabs>
5 <Tabs.Screen
6 name="index"
7 options={{ title: "Início",
8 tabBarIcon: ({ color }) => ( <FontAwesome name="home"
9 size={24}
10 color={color}
11 /> ), }}
12 /> 
13<Tabs.Screen name="settings"
14 options={{ title: "Configurações",
15 tabBarIcon: ({ color }) => ( <FontAwesome
16 name="cog"
17 size={24}
18 color={color}
19 /> ), }} /> </Tabs> );}

Observações Importantes

Alguns pontos cruciais para o funcionamento correto:

  • Arquivo index obrigatório: O Expo Router requer um arquivo index.tsx dentro do grupo de abas
  • Ícones: Podem ser personalizados usando qualquer biblioteca de ícones
  • Navegação: As abas são automaticamente sincronizadas com a URL (no caso do Expo Web)

A estrutura resultante cria uma barra de navegação inferior com ícones e títulos, permitindo alternar entre as telas principais do aplicativo.

Considerações Finais

O Tab Navigator do Expo Router oferece uma solução elegante para navegação por abas:

  • Integração perfeita: Funciona bem com outros navegadores (Stack, Drawer)
  • Personalização: Permite ajustar aparência e comportamento das abas
  • Performance: As telas são mantidas em memória quando não ativas

Para projetos mais complexos, considere:

  • Adicionar indicadores de estado (notificações) nos ícones
  • Implementar lazy loading para telas menos acessadas
  • Personalizar a animação de transição entre abas
  • Adicionar tratamento especial para dispositivos com notch

Esta abordagem simplifica significativamente a criação de interfaces com múltiplas seções principais, mantendo uma experiência de usuário consistente e intuitiva. O Expo Router abstrai grande parte da complexidade, permitindo focar na experiência do usuário final.

Fernando Cunha
Artigo deFernando Cunha

Com mais de 15 anos de experiência em tecnologia e formado pela FAAP em Administração de empresas, hoje é o CEO da Mestres da Web, empresa referência no mercado nacional e com projeções de expansão internacional.

últimos vídeos

veja nossos vídeos mais recentes e esteja por dentro de muitas novidades.

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN
play

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN

Explorando a estrutura gerada pelo Create React App, entendendo o papel das pastas public e src, os conceitos de Virtual DOM, JSX e componentes, além de como o CSS é aplicado nos projetos React.

Autor deste artigo
Fernando Cunha17/03/2025
Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN
play

Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN

Explorando a criação de um layout fixo para a aplicação React, com barra lateral, barra superior e área dinâmica para conteúdo. Utilizando o React Router Dom v6 para gerenciar navegação entre rotas.

Autor deste artigo
Fernando Cunha17/03/2025
Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN
play

Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN

Abordando técnicas para organizar estilos em React, utilizando seletores CSS, CSS Modules, integração com React Router, reset CSS eficiente e boas práticas para garantir consistência visual e manutenibilidade.

Autor deste artigo
Fernando Cunha17/03/2025