4.8 KiB
🎨 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:
CalendarView— calendário nativoTextView— título "Consultas agendadas:"RecyclerView(recycler_agenda) — lista de consultasTextView(text_agenda_vazia) — mensagem quando vazio (visibility: gone)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:
- Logo — ImageView 250×250dp (
logo_app) - 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)
- Link de registo — "Não tem conta? Registar" (
register_link)
activity_register_medico.xml (153 linhas)
Usado por: RegisterActivity.java
Layout num ScrollView:
- Logo — ImageView 200×200dp (
ic_logo) - 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:
- Botão voltar (
btn_voltar) - Título "Editar Dados Pessoais"
- Campo nome (
edit_name) - Campo especialidade (
edit_specialty) - Dropdown sexo (
edit_gender) —ExposedDropdownMenu - Campo email (
edit_email) — desativado (não editável) - Botão "GUARDAR ALTERAÇÕES" (
btn_guardar_alteracoes)
activity_perfil_medico.xml (125 linhas)
Usado por: PerfilMedicoActivity.java
Layout vertical com:
- Ícone de utilizador (100×100dp)
- MaterialCard com dados do médico (nome, email, especialidade, cédula)
- Botão "EDITAR DADOS" (preto)
- Botão "TERMINAR SESSÃO" (contorno vermelho)
- 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)