警报对话框按钮太近

时间:2018-10-09 12:43:39

标签: android user-interface themes material-design

触摸“警报”对话框的按钮后,我看到了这个东西(它们之间没有空格)。

enter image description here

无论使用哪种主题,都会发生这种情况。代码:

builder.setTitle(R.string.sign_in_title);
builder.setCancelable(false)
        .setPositiveButton(R.string.sign_in, (dialog, id) -> {
            //Todo
        })
        .setNegativeButton(R.string.cancel, (dialog, id) -> dialog.cancel());
builder.create().show();

应用主题继承:

 <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">

我试图仅使用Alert.Dialog建立一个最小的项目设置,我看到了同样的东西。

有什么想法吗?如何解决?

编辑:我知道可以更改Alert的主题以产生不同的结果,但这也意味着我的应用程序中没有统一的按钮(即绿色填充白色文本)

4 个答案:

答案 0 :(得分:1)

只需从支持的库中更改 AlertDialog 的导入类:

import androidx.appcompat.app.AlertDialog;

代替

import android.app.AlertDialog;

谢谢。

答案 1 :(得分:1)

对我来说很好

  <style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="windowNoTitle">true</item>
    <item name="android:windowCloseOnTouchOutside">false</item>
    <item name="android:layout_margin">2dp</item>

只需调用“ DialogTheme”即可在您的对话框活动中使用

答案 2 :(得分:0)

以此替换您的样式

<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="windowNoTitle">true</item>
        <item name="android:windowCloseOnTouchOutside">false</item>
        <item name="android:windowBackground">@color/transparent</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

答案 3 :(得分:0)

为您的alertDialog使用主题,

AlertDialog.Builder(context, R.style.Base_Theme_AppCompat_Light_Dialog);