有没有办法只使用styles.xml 设置本机AlertDialog 角半径而无需额外代码?

Posted

技术标签:

【中文标题】有没有办法只使用styles.xml 设置本机AlertDialog 角半径而无需额外代码?【英文标题】:Is there any way to set native AlertDialog corner radius using only styles.xml with no extra code? 【发布时间】:2019-09-26 23:45:57 【问题描述】:

我想知道有什么方法可以实现吗?问题只是关于 styles.xml 代码修改,而不是使用自定义布局以编程方式制作自定义对话框。

【问题讨论】:

我认为它的默认半径可能没有我们在 Material Card View 中看到的属性..并且严格保持设计标准很好。如果你愿意,你可以创建一个自定义... 我认为这应该是一种通过深入挖掘样式来实现它的方法。是的,我知道用材料设计跟上一切都是一个好习惯,但有时这取决于客户的意愿而不是开发人员:) 【参考方案1】:

您可以使用Material Theme 和shapeAppearanceOverlay 属性的AlertDialog 组件中的customize the shape。

类似:

  <!-- Alert Dialog -->
  <style name="MyThemeOverlayAlertDialog" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog">
    <item name="shapeAppearanceOverlay">@style/ShapeAppearanceOverlay.MyApp.Dialog.Rounded</item>
  </style>

  <style name="ShapeAppearanceOverlay.MyApp.Dialog.Rounded" parent="">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSize">8dp</item>
  </style>

需要材料组件库1.1.0版本。

【讨论】:

以上是关于有没有办法只使用styles.xml 设置本机AlertDialog 角半径而无需额外代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中从 styles.xml 设置 EditText 样式?

相当于Xcode中android的styles.xml

如何在android中隐藏工具栏?

有没有办法覆盖本机加速键?

有没有办法从字符串中获取数字并使用 XSLT 计算相同的总和?

Android状态栏着色(非沉浸式状态栏)