Como posso personalizar o layout do cabeçalho de um diálogo
-
20-09-2019 - |
Pergunta
No Android, é possível personalizar o layout do cabeçalho (o ícone + a texto) de uma caixa de diálogo? Ou posso apenas definir um valor de string personalizado do texto do título?
Obrigada.
Solução
É possível alterar o cabeçalho da caixa de diálogo se você definir um layout personalizado para a caixa de diálogo e o cabeçalho. Eu só usei esse método para remover completamente o cabeçalho, mas isso deve trabalhar para um cabeçalho personalizado:
dialog = new Dialog(context);
Window window = dialog.getWindow();
window.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
dialog.setContentView(R.layout.my_dialog_layout);
window.setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_header);
Tudo isso é um pouco mais complicado (como você deve configurar o layout da caixa de diálogo), mas é mais fácil do que a caixa de diálogo de subclasse.
Outras dicas
A classe de diálogo original parece não ter a capacidade de definir um ícone, mas você pode facilmente estender o alertdialog e definir uma visualização personalizada (o mesmo que você usaria para sua instância de diálogo), você só precisa de algo assim
class MyDialog extends AlertDialog {
public MyDialog(Context ctx) {
super(ctx);
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.dialog_layout, null);
setView(view);
setTitle("MyTitle");
setIcon(R.drawable.myicon);
}
}