🧭 Semana 6 – Menus de Navegação I (estrutura visual)

📌 Tópico 1 – O que são Menus de Navegação?

Em aplicativos modernos, navegar entre diferentes telas é essencial. Imagine um app como o Instagram: há uma tela para o feed, outra para pesquisar, outra para o perfil... O menu de navegação ajuda o usuário a se mover entre essas partes.

O Flet oferece diferentes opções de navegação visual, como:

  • AppBar: barra superior com título e ícones
  • NavigationBar: menu inferior com ícones
  • NavigationRail: menu lateral (para telas grandes)

Nesta semana, focaremos na parte visual desses elementos, antes de adicionar a lógica de navegação nas próximas aulas.

📐 Tópico 2 – Layout com AppBar e NavigationBar

Vamos começar criando uma estrutura de layout básica com uma barra superior e uma barra inferior de navegação.

import flet as ft

def main(page: ft.Page):
    page.title = "Exemplo com AppBar e NavigationBar"

    def ao_mudar(index):
        print(f"Selecionado: {index}")

    page.appbar = ft.AppBar(
        title=ft.Text("Meu App"),
        center_title=True,
        bgcolor=ft.colors.SURFACE_VARIANT
    )

    page.navigation_bar = ft.NavigationBar(
        destinations=[
            ft.NavigationDestination(icon=ft.icons.HOME, label="Início"),
            ft.NavigationDestination(icon=ft.icons.SEARCH, label="Buscar"),
            ft.NavigationDestination(icon=ft.icons.PERSON, label="Perfil"),
        ],
        on_change=ao_mudar
    )

    page.add(ft.Text("Conteúdo da tela principal"))
    page.update()

ft.app(target=main)

O layout acima é estático, mas já traz estrutura profissional ao app. O conteúdo ainda não muda ao clicar nos itens.

🧩 Tópico 3 – Navegação por telas (sem lógica ainda)

Mesmo sem implementar ainda a lógica de troca de telas, podemos preparar as "páginas" e deixá-las prontas para serem exibidas de acordo com a seleção no menu.

conteudo_paginas = [
    ft.Text("📄 Página Início"),
    ft.Text("🔍 Página de Busca"),
    ft.Text("👤 Página de Perfil"),
]

Na próxima aula, vamos associar a troca de página com o índice selecionado no NavigationBar. Por enquanto, pense nessas variáveis como diferentes áreas visuais que seu app poderá mostrar.

Exemplo real: Quando você abre o YouTube, há páginas como "Início", "Inscrições", "Biblioteca". Cada botão muda o conteúdo, mas a estrutura permanece.

🛠️ Prática Guiada

Crie um app com a seguinte estrutura:

  • AppBar com título e cor personalizada
  • NavigationBar com 3 ícones: Home, Buscar e Perfil
  • Exiba uma mensagem diferente na tela de acordo com a opção clicada

Você pode usar uma Column ou Container central para exibir o conteúdo de cada "tela".

📝 Tarefa / Entrega

Desafio: Desenvolva um app com estrutura de navegação visual (sem mudar o conteúdo ainda).

  • Use AppBar e NavigationBar
  • Crie 3 "páginas" como variáveis e simule a troca com prints
  • Capriche no layout e na escolha das cores

Entrega: Código + print do app rodando