android - 全宽按钮 Material 对话框

标签 android material-design android-alertdialog android-5.0-lollipop android-dialog

我正在尝试找到一个示例代码来实现带有全宽按钮的 Material 对话框,如下面的屏幕截图所示。

有人可以通过分享有关如何复制此设计的示例代码来提供帮助吗? enter image description here

最佳答案

您可以通过仅使用 AppCompat 来实现,请查看我的解决方法:

代码

    import android.support.v7.app.AlertDialog;

    AlertDialog.Builder builder;
    builder = new AlertDialog.Builder(context, R.style.StackedAlertDialogStyle);
    builder.setTitle("Title");
    builder.setMessage("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc dignissim purus eget gravida mollis. Integer in auctor turpis. Morbi auctor, diam eget vestibulum congue, quam arcu pulvinar dui, blandit egestas erat enim non ligula." +
            " Nunc quis laoreet libero. Aliquam consectetur nibh eu arcu eleifend efficitur.");
    builder.setPositiveButton("Positive Button", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
    });
    builder.setNeutralButton("Neutral Button", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
    });
    builder.setNegativeButton("Cancel Button", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
    });
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
        try{
            final Button button = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
            LinearLayout linearLayout = (LinearLayout) button.getParent();
            linearLayout.setOrientation(LinearLayout.VERTICAL);
        } catch(Exception ex){
            //ignore it
        }

风格

<style name="StackedAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="buttonBarButtonStyle">@style/StackedButtonBarButtonStyle</item>
</style>

<style name="StackedButtonBarButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
    <item name="android:layout_gravity">right</item>
</style>

结果

Stacked Alert Dialog

关于android - 全宽按钮 Material 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29168298/

相关文章:

android - 正确插入和从 sqlite android 获取数据

angular2 Material 设计 - react 形式 - md-select 不填充默认值

android - 在 onMessageReceived 中显示警报对话框 - FCM

android - 如何将复选框添加到警报对话框

android - sqlite3权限被拒绝android

android - 上下文/覆盖主题颜色

html - Material 设计图标,如何将它们作为文本居中?

java - 单击按钮后关闭警报对话框

android - 有没有办法加密 iBeacon UUID 传输?

javascript - 如何构建自定义material-ui组件