Files
cuidamais_med/docs/11_Layouts_XML.md
2026-04-22 12:41:12 +01:00

4.8 KiB
Raw Blame History

🎨 Layouts XML — Interfaces Visuais

Pasta: app/src/main/res/layout/


Layouts de Activity (ecrãs completos)

activity_main.xml (243 linhas)

Usado por: MainActivity.java

Estrutura principal com 3 secções controladas pela BottomNav:

Secção ID Descrição
Header lay_top Saudação "Olá, [Nome]" (tv_greeting_main)
Agenda view_agenda CalendarView num MaterialCard + RecyclerView de consultas + texto "agenda vazia"
Pacientes view_pacientes RecyclerView de pacientes (recycler_consultas) + texto "vazio"
Perfil view_perfil Ícone de utilizador + MaterialCard com dados + botões "Editar" e "Logout"
Nav bottom_navigation BottomNavigationView com menu menu_bottom

Layout raiz: RelativeLayout com fundo #F5F5F5


activity_agenda.xml (53 linhas)

Usado por: AgendaActivity.java

Layout vertical simples:

  1. CalendarView — calendário nativo
  2. TextView — título "Consultas agendadas:"
  3. RecyclerView (recycler_agenda) — lista de consultas
  4. TextView (text_agenda_vazia) — mensagem quando vazio (visibility: gone)
  5. BottomNavigationView — navegação inferior

activity_chat.xml (57 linhas)

Usado por: ChatActivity.java

Layout: ConstraintLayout

Elemento ID Descrição
RecyclerView recycler_mensagens Ocupa o espaço todo acima do input
Barra de input layout_input LinearLayout horizontal no fundo
Campo de texto et_mensagem_input EditText com hint "Escrever mensagem..."
Botão enviar btn_enviar ImageButton com ícone ic_send

activity_login.xml (127 linhas)

Usado por: LoginActivity.java

Layout num ScrollView centrado:

  1. Logo — ImageView 250×250dp (logo_app)
  2. Card de login — MaterialCardView contendo:
    • Título "Iniciar Sessão"
    • Campo email (email_edit_text)
    • Campo password (password_edit_text)
    • Checkbox "Lembrar-me"
    • Botão "Entrar" (login_button)
    • Link "Esqueceu a palavra-passe" (forgot_password_link)
  3. Link de registo — "Não tem conta? Registar" (register_link)

activity_register_medico.xml (153 linhas)

Usado por: RegisterActivity.java

Layout num ScrollView:

  1. Logo — ImageView 200×200dp (ic_logo)
  2. Card de registo — MaterialCardView contendo:
    • Título "Registar"
    • Campo nome (name_edit_text)
    • Campo especialidade (specialty_edit_text)
    • Dropdown género (gender_auto_complete)
    • Campo email (email_edit_text)
    • Campo password (password_edit_text)
    • Botão "Registar" (register_button)
    • Link "Já tem conta? Entrar" (login_link)

activity_detalhe_paciente.xml (158 linhas)

Usado por: DetalhePacienteActivity.java

Layout: ConstraintLayout

Secção Conteúdo
Topo Botão voltar (btn_sair_detalhe) com ícone seta
Card "Informação Pessoal" Nome, idade, nº utente, sexo, email
Card "Medicação Atual" Lista de medicação (tv_medicacao_paciente)
Fundo Botão "Conversar com Paciente" (btn_chat_paciente) com ícone chat

activity_editar_perfil.xml (103 linhas)

Usado por: EditarPerfilActivity.java

Layout num ScrollView:

  1. Botão voltar (btn_voltar)
  2. Título "Editar Dados Pessoais"
  3. Campo nome (edit_name)
  4. Campo especialidade (edit_specialty)
  5. Dropdown sexo (edit_gender) — ExposedDropdownMenu
  6. Campo email (edit_email) — desativado (não editável)
  7. Botão "GUARDAR ALTERAÇÕES" (btn_guardar_alteracoes)

activity_perfil_medico.xml (125 linhas)

Usado por: PerfilMedicoActivity.java

Layout vertical com:

  1. Ícone de utilizador (100×100dp)
  2. MaterialCard com dados do médico (nome, email, especialidade, cédula)
  3. Botão "EDITAR DADOS" (preto)
  4. Botão "TERMINAR SESSÃO" (contorno vermelho)
  5. BottomNavigationView

Layouts de Item (para RecyclerView)

item_consulta_medico.xml (101 linhas)

Usado por: ConsultaAdapter.java

MaterialCard com cantos arredondados (16dp):

  • Linha superior: Ícone do utente (circle_bg) + nome + data/hora + status
  • Linha inferior: Botão "Eliminar" (vermelho, outlined) + Botão "Aceitar" (preenchido)

item_mensagem.xml (51 linhas)

Usado por: MensagemAdapter.java

Cada item tem dois layouts (apenas um visível de cada vez):

Layout ID Posição Estilo
Recebida layout_msg_recebida Esquerda bg_bubble_receive (texto preto)
Enviada layout_msg_enviada Direita bg_bubble_send (texto branco)

Largura máxima: 280dp (para não ocupar o ecrã todo)


item_paciente.xml (59 linhas)

Usado por: PacienteAdapter.java

MaterialCard simples com:

  • Ícone do paciente (circle_bg, 56×56dp)
  • Nome em negrito (18sp)
  • Email em cinza (14sp)