Pergunta

Eu quero fazer um costume Dialog. Porque eu não gosto do seu estilo, quero ter retângulo arredondado em vez de cantos afiados. Eu sei como implementá -lo por tema em AndroidManifest.xml, por exemplo, eu uso:

android:theme="@style/Theme.CustomDialog"

E Theme.CustomDialog.xml:

<style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">
        <item name="android:windowBackground">@drawable/filled_box</item>
        <item name="android:windowNoTitle">true</item>

filled_box.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ffffffff"/>
    <stroke android:width="3dp" color="#ffff8080"/>
    <corners android:radius="30dp" />
    <padding android:left="10dp" android:top="10dp"
        android:right="10dp" android:bottom="10dp" />
</shape>

Como posso implementar um resultado semelhante, estendendo o Dialog ou AlertDialog?

Foi útil?

Solução

No construtor da sua classe que estende a chamada de diálogo super(context, R.style.CustomDialog); Já fiz isso muitas vezes para criar diálogos personalizados com temas específicos.

No entanto, se o tema é a única coisa sobre a caixa de diálogo que você deseja mudar, você pode tentar apenas instantar uma instância da classe de diálogo e passar o ID do tema Dialog dialog = new Dialog(context, R.style.CustomDialog);

Um exemplo de diálogo estendendo -se:

public class MyDialog extends Dialog
{
    public MyDialog(final Context context)
    {
        // Set your theme here
        super(context, R.style.MyDialogTheme);

        // This is the layout XML file that describes your Dialog layout
        this.setContentView(R.layout.myDialogLayout);  
    }
}

O restante do código que você adicionará a esta classe será exatamente como o que você escreveria em uma classe de atividades.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top