falta so o chat
This commit is contained in:
156
docs/11_Layouts_XML.md
Normal file
156
docs/11_Layouts_XML.md
Normal file
@@ -0,0 +1,156 @@
|
||||
# 🎨 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)
|
||||
Reference in New Issue
Block a user