全宽警报对话框按钮

发布于 2025-01-10 05:33:34 字数 753 浏览 1 评论 0原文

我试图让我的 AlertDialogs 看起来像这样,带有全宽按钮:

在此处输入图像描述

我正在关注 Google 的 文档 它说使用这种样式:

 R.style.ThemeOverlay_MaterialComponents_MaterialAlertDialog_FullWidthButtons

但我无权访问该样式主题:

进入image description here

我在项目的 Gradle 文件中添加了适当的依赖项:

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

我觉得我只是错过了一些明显的东西。

I'm trying to get my AlertDialogs to look like this, with the full width button:

enter image description here

I'm following the Google's documentation and it says to use this style:

 R.style.ThemeOverlay_MaterialComponents_MaterialAlertDialog_FullWidthButtons

but I don't have access to that theme:

enter image description here

I have the appropriate dependency added in the project's Gradle file:

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

I feel like I'm just missing something obvious.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦途 2025-01-17 05:33:34

库中缺少主题覆盖的实现。
您可以通过以下方式自行定义它:

声明全角按钮样式,例如:

  <style name="Button.FullWidth" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_weight">1</item>
    <item name="android:maxWidth">@null</item>
  </style>

使用全角按钮样式声明主题覆盖:

  <style name="ThemeOverlay.MaterialComponents.MaterialAlertDialog.FullWidthButtons">
    <item name="materialAlertDialogButtonSpacerVisibility">2</item>
    <item name="buttonBarPositiveButtonStyle">@style/Button.FullWidth</item>
    <item name="buttonBarNegativeButtonStyle">@style/Button.FullWidth</item>
    <item name="buttonBarNeutralButtonStyle">@style/Button.FullWidth</item>
  </style>

在此处输入图像描述

The implementation of the theme overlays is missing in the library.
You can define it on your own, by:

Declare a full width button style, like:

  <style name="Button.FullWidth" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_weight">1</item>
    <item name="android:maxWidth">@null</item>
  </style>

Declare the theme overlay with full-width button styles:

  <style name="ThemeOverlay.MaterialComponents.MaterialAlertDialog.FullWidthButtons">
    <item name="materialAlertDialogButtonSpacerVisibility">2</item>
    <item name="buttonBarPositiveButtonStyle">@style/Button.FullWidth</item>
    <item name="buttonBarNegativeButtonStyle">@style/Button.FullWidth</item>
    <item name="buttonBarNeutralButtonStyle">@style/Button.FullWidth</item>
  </style>

enter image description here

提赋 2025-01-17 05:33:34

加布里埃尔的回答非常好。如果您想删除中间空格,只需

<item name="materialAlertDialogButtonSpacerVisibility">2</item>

在警报对话框样式中设置,这意味着GONE。默认值为1,表示不可见

Gabriel's Answer is pretty good. If you want to remove the middle space just set

<item name="materialAlertDialogButtonSpacerVisibility">2</item>

in your alert dialog style that means GONE. The default value is 1 that means invisible.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文