Tab Bar — o que é, painel de abas em aplicativos móveis

Autor: IT Sectr Publicado: 2026-02-22 Tempo de leitura: 12 min

Tab Bar é um elemento de navegação localizado na parte inferior da tela de um aplicativo móvel, que fornece acesso rápido às seções principais. No iOS é implementado via UITabBarController, no Android via BottomNavigationView do Material Design. Saiba mais sobre os princípios de navegação nas Diretrizes de Interface Humana da Apple.

Principais Conclusões

  • Tab Bar — painel de navegação inferior para alternar entre 3–5 seções principais do aplicativo
  • UITabBarController — componente iOS padrão para gerenciar abas com aparência do sistema
  • BottomNavigationView — componente Android da Material Design Library para navegação inferior
  • Badges — indicadores numéricos nos ícones das abas para exibir notificações
  • Personalização — ícones, cores, fontes e animações de alternância são configurados via APIs da plataforma

O que é um Tab Bar?

Um Tab Bar (barra de abas) é um elemento de interface gráfica localizado na parte inferior da tela de um aplicativo móvel. Ele fornece acesso rápido a 3–5 seções principais do aplicativo. Cada seção é representada por um ícone e um rótulo de texto. O usuário toca em uma aba para alternar para a seção correspondente. O Tab Bar permanece visível em todas as telas dentro de cada seção, fornecendo um ponto de entrada constante.

A Apple recomenda usar um Tab Bar para seções de igual importância. As Diretrizes de Interface Humana (2026) afirmam: "O Tab Bar exibe de 3 a 5 abas. Se mais forem necessárias, a última aba se torna um item "Mais" contendo as restantes." O Material Design do Google (2026) recomenda a Bottom Navigation para o mesmo propósito — 3 a 5 itens, com a aba ativa destacada por cor e animação.

Ao contrário da barra de abas superior, o painel inferior é mais conveniente para operação com uma mão — o polegar alcança naturalmente a parte inferior da tela. Um estudo do Nielsen Norman Group (2025) mostrou que a navegação inferior reduz o tempo de conclusão de tarefas em 22% em comparação com a navegação superior em smartphones com tela de 6 polegadas ou mais.

UITabBarController no iOS

UITabBarController é um controlador iOS integrado para organizar a navegação através de abas. Cada aba gerencia seu próprio conjunto de telas, normalmente organizadas em um UINavigationController. O UITabBarController cria automaticamente um Tab Bar na parte inferior da tela com um fundo translúcido do sistema e animação de alternância.

swift
import UIKit

class MainTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let homeVC = HomeViewController()
        let searchVC = SearchViewController()
        let profileVC = ProfileViewController()

        homeVC.tabBarItem = UITabBarItem(
            title: "Início",
            image: UIImage(systemName: "house.fill"),
            tag: 0
        )
        searchVC.tabBarItem = UITabBarItem(
            title: "Pesquisar",
            image: UIImage(systemName: "magnifyingglass"),
            tag: 1
        )
        profileVC.tabBarItem = UITabBarItem(
            title: "Perfil",
            image: UIImage(systemName: "person.circle.fill"),
            tag: 2
        )

        let homeNav = UINavigationController(rootViewController: homeVC)
        let searchNav = UINavigationController(rootViewController: searchVC)
        let profileNav = UINavigationController(rootViewController: profileVC)

        viewControllers = [homeNav, searchNav, profileNav]
    }
}

Cada aba no exemplo contém um UINavigationController, permitindo navegação em pilha dentro da seção. O tabBarItem configura o ícone, título e badge. O sistema aplica automaticamente o estilo SF Symbols para os ícones — símbolos padrão da Apple com suporte a tipo dinâmico e multicolor.

BottomNavigationView no Android

BottomNavigationView é um componente Android da Material Design Library que implementa o painel de navegação inferior. No Android 13+ é usado o NavigationBarView — seu sucessor com animação melhorada e comportamento adaptativo. O BottomNavigationView segue a especificação Material Design 3 (Material You) e suporta temas de aplicativo, cores dinâmicas e animações de alternância.

kotlin
class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        val navView: NavigationBarView = binding.navView
        val navController = findNavController(R.id.nav_host_fragment)

        // Vinculando BottomNavigation ao NavController
        navView.setupWithNavController(navController)

        // Configurando um badge na aba de notificações
        val badge = navView.getOrCreateBadge(R.id.navigation_notifications)
        badge.isVisible = true
        badge.number = 12
    }
}

O componente BottomNavigationView suporta Material Design 3 com três estilos: default (rótulo + ícone), labeled (rótulo maior) e unlabeled (apenas ícone). O método setupWithNavController vincula o painel ao Navigation Component, atualizando automaticamente a aba ativa ao mudar de tela. Badges são criados via getOrCreateBadge e suportam indicadores numéricos e de ponto.

Badges e Indicadores no Tab Bar

Badges são indicadores numéricos ou de ponto nos ícones das abas, exibindo o número de notificações, novas mensagens ou tarefas. No iOS, o badge é definido através da propriedade badgeValue no UITabBarItem. No Android, badges são gerenciados via BadgeDrawable (Material 3) ou getOrCreateBadge no NavigationBarView.

Badges são uma ferramenta poderosa de engajamento: a pesquisa da Localytics (2025) mostrou que aplicativos com badges têm 18% mais retenção no 7º dia. No entanto, o uso excessivo de badges (mais de 3 ao mesmo tempo) reduz o CTR em 12%. Apple e Google recomendam mostrar badges apenas para notificações relevantes e redefini-los ao abrir a seção.

PlataformaComponenteDefinir um Badge
iOSUITabBarItem.badgeValuetabBarItem.badgeValue = "5"
AndroidBadgeDrawablebadge.number = 5
iOSBadge de pontotabBarItem.badgeColor = .red
AndroidIndicador de pontobadge.isVisible = true

Personalização do Tab Bar: Ícones, Cores, Animações

Ambas as plataformas oferecem amplas opções de personalização do Tab Bar. No iOS, você pode alterar a cor de fundo, a cor tint da aba ativa, a fonte do rótulo e adicionar ícones personalizados via SF Symbols ou assets próprios. No Android, a personalização inclui estilos Material 3, animação de alternância, efeito ripple e cores dinâmicas baseadas no papel de parede.

swift
// Personalização do Tab Bar no iOS
let appearance = UITabBarAppearance()
appearance.backgroundColor = .systemBackground
appearance.stackedLayoutAppearance.normal.titleTextAttributes = [
    .foregroundColor: UIColor.secondaryLabel,
    .font: UIFont.systemFont(ofSize: 11)
]
appearance.stackedLayoutAppearance.selected.titleTextAttributes = [
    .foregroundColor: UIColor.systemBlue,
    .font: UIFont.boldSystemFont(ofSize: 12)
]
tabBar.standardAppearance = appearance.

No Android, a personalização do BottomNavigationView é feita através de atributos XML ou programaticamente. O Material 3 introduz o conceito de cores dinâmicas: a paleta de cores é gerada a partir do papel de parede do usuário e aplicada automaticamente aos componentes. O desenvolvedor pode sobrescrever as cores através do tema, definir uma animação de indicador personalizada e configurar o efeito ripple.

kotlin
// Personalização do BottomNavigationView no Android
val navView = findViewById<NavigationBarView>(R.id.nav_view)

with (navView) {
    labelVisibilityMode = NavigationBarView.LABEL_VISIBILITY_LABELED
    itemActiveIndicatorStyle = R.style.CustomIndicator
    itemRippleColor = ColorStateList.valueOf(
        Color.valueOf("#FFE0B2")
    )
}

// Em XML: app:menu="@menu/bottom_nav_menu"
// Em XML: app:itemActiveIndicatorStyle="@style/Widget.Material3.BottomNavigationView.ActiveIndicator"

Melhores Práticas de Navegação Inferior

Ao projetar um Tab Bar, é importante seguir as recomendações da plataforma e as pesquisas de usabilidade. Apple HIG: não mais de 5 abas, texto conciso, ícones semânticos. Material Design: 3 a 5 itens, item ativo destacado, contador de badge não superior a 99. NN Group (2025): a navegação inferior deve permanecer visível em todas as telas de uma seção, caso contrário o usuário perde o contexto.

Erros comuns: 6 ou mais abas (obriga a usar "Mais" — reduz a descobribilidade), alterar a ordem das abas durante a navegação (desorienta o usuário), ocultar a Tab Bar em telas aninhadas (perda da âncora de navegação). As melhores práticas incluem ordem fixa, ícones e rótulos de texto consistentes, badges apenas para ações do usuário (não para marketing).

  • 3–5 abas — número ideal para seleção rápida sem sobrecarga
  • Ordem fixa — as abas devem ser estáveis, sem reordenação dinâmica
  • Ícone + rótulo — ambos os elementos são necessários para entender a seção
  • Aba ativa — deve diferir visualmente por cor, ícone ou animação
  • Badges — use para notificações, redefina ao abrir a seção

Perguntas Frequentes

Quantas abas um Tab Bar deve ter?

Apple e Google recomendam de 3 a 5 abas. Menos de três — não há seções suficientes para justificar o painel inferior. Mais de cinco — sobrecarga cognitiva, a última aba se torna um item "Mais". O número ideal segundo o NN Group (2025) é de 4 abas.

Qual é a diferença entre Tab Bar e Bottom Navigation?

Tab Bar é o termo da Apple para o painel inferior do iOS (UITabBarController). Bottom Navigation é o equivalente no Android (BottomNavigationView). Funcionalmente são idênticos: acesso rápido a 3–5 seções. As diferenças estão no estilo visual: iOS — fundo translúcido com blur, Android — cor fixa com efeito ripple.

Posso ocultar a Tab Bar em algumas telas?

Sim, mas com cuidado. No iOS — hidesBottomBarWhenPushed = true no UIViewController. No Android — View.GONE no BottomNavigationView. A melhor prática é ocultar apenas em telas de tela cheia (visualização de fotos, vídeo) e restaurá-la ao retornar. Ocultar prolongadamente desorienta o usuário.

Como adiciono um badge a uma aba do Tab Bar?

No iOS, defina tabBarItem.badgeValue = "N" (como string). No Android, use getOrCreateBadge(resId) no NavigationBarView. O badge é exibido automaticamente como um círculo vermelho com um número. Para limpar: badgeValue = nil (iOS), removeBadge(resId) ou badge.isVisible = false (Android).

Por que a Tab Bar fica oculta no iPhone X+?

Em dispositivos com Home Indicator (iPhone X e mais recentes), a Tab Bar é automaticamente elevada acima do indicador. O sistema adiciona Safe Area Insets na parte inferior da tela. O desenvolvedor não precisa ajustar manualmente as margens — UIKit e Android SystemUI lidam com isso automaticamente.

Resumo

  • Tab Bar — painel de navegação inferior com 3–5 abas, um elemento padrão no iOS e Android
  • UITabBarController (iOS) e BottomNavigationView (Android) são implementações específicas da plataforma
  • Badges — indicadores numéricos nas abas para notificações, aumentam a retenção em 18%
  • Personalização inclui cores, ícones, fontes e animação de alternância em ambas as plataformas
  • Melhores práticas — ordem fixa, ícone + rótulo, 3–5 abas, visível em todas as telas
  • Tab Bar + Navegação — cada aba normalmente contém um navegador de pilha para telas aninhadas
  • Safe Area — o painel inferior se adapta automaticamente ao Home Indicator em dispositivos sem bordas

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também