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.

Foi útil?

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);
     }
 }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top