小编Adh*_*ier的帖子

为什么我的默认警报对话框按钮文本是白色的?

我已按如下方式设置我的应用程序:

构建.gradle

implementation 'com.google.android.material:material:1.1.0'

样式文件

    <style name="AlertDialogTheme" parent="ThemeOverlay.MaterialComponents.Dialog.Alert">
        <item name="buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
        <item name="buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
    </style>

    <style name="NegativeButtonStyle" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
        <item name="android:color">@color/colorPrimary</item>
    </style>

    <style name="PositiveButtonStyle" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
        <item name="android:color">@color/colorPrimary</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

CheckoutFragment.kt

   private fun createConfirmOrderDialog() {
       val builder = AlertDialog.Builder(requireContext(), R.style.AlertDialogTheme)
       builder.setTitle(getString(R.string.confirm_order))
           .setMessage(dialogPrompt)
           .setPositiveButton(R.string.confirm) { dialog, _ ->
               viewModel.placeOrder()
               dialog.dismiss()
           }
           .setNegativeButton(R.string.cancel) { dialog, _ ->
               dialog.dismiss()
           }
       builder.show()
  }
Run Code Online (Sandbox Code Playgroud)

颜色文件

<color name="colorAccent">#F1CB1A</color> // I have this added to the base theme

但是,此设置显示了一个对话框,其中按钮文本不可见,因为文本和背景都是白色的。

结果对话框

我怎样才能解决这个问题?

android android-theme android-alertdialog android-ktx material-components-android

2
推荐指数
1
解决办法
542
查看次数