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

157 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎨 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)