Material 组件确认对话框

Material Components Confirmation Dialog

如何实现下图中对话框中标题和按钮上的水平分隔线或高度?

我已经安装了 material 组件库并使用 dialog documentation 作为指南。

代码如下:

MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(this.getActivity());

LayoutInflater inflater = ((Activity) context).getLayoutInflater();
View view = inflater.inflate(R.layout.dialog_settings, null);

setupView(view);


materialAlertDialogBuilder.setView(view);
materialAlertDialogBuilder.setTitle("Settings");

materialAlertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
    @Override
    public void onClick(DialogInterface dialog, int which)
    {

    }
});

materialAlertDialogBuilder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener()
{
    @Override
    public void onClick(DialogInterface dialog, int which)
    {

    }
});

materialAlertDialogBuilder.setCancelable(false);
materialAlertDialogBuilder.create();
materialAlertDialogBuilder.show();

MaterialAlertDialogBuilder好像没有设置这个属性的能力。

就用标准的MaterialAlertDialogBuilder.
如果您有标题面板、按钮面板和需要可滚动视图的内容,这是默认行为。

例如:

    CharSequence[] choices = {"Choice1", "Choice2", "Choice3", "Choice1", "Choice2", "Choice3","Choice1", "Choice2", "Choice3","Choice1", "Choice2", "Choice3","Choice1", "Choice2", "Choice3","Choice1", "Choice2", "Choice3"};
    boolean[] choicesInitial = {false, true, false, false, true, false,false, true, false,false, true, false, false, true, false,false, true, false};

    new MaterialAlertDialogBuilder(MainActivity.this)
        .setTitle("Title")
        .setMultiChoiceItems(choices, choicesInitial, null)
        .setPositiveButton("ok", null)
        .setNegativeButton("Cancel", null)
        .show();

使用长消息,加上标题和按钮可以获得:

new MaterialAlertDialogBuilder(AlertDialogActivity.this)
            .setTitle("Title")
            .setMessage(multiLineMessage.toString())
            .setPositiveButton("ok", null)
            .setNegativeButton("Cancel", null)
            .show();