我正在使用AppCompat编写一个Material Design风格的应用程序。由于AppCompat不影响对话框,因此我正在对话框进行如下设置:
styles.xml:
<style name="AppTheme.Base" parent="Theme.AppCompat">
<!-- Set AppCompat’s color theming attrs -->
<item name="colorPrimary">@color/green</item>
<item name="colorPrimaryDark">@color/green_darker</item>
<item name="colorAccent">@color/accent</item>
<item name="android:alertDialogTheme">@style/alertDialog</item>
<item name="android:dialogTheme">@style/alertDialog</item>
</style>
<style name="alertDialog" parent="Theme.AppCompat.Dialog">
<item name="colorPrimary">@color/green</item>
<item name="colorPrimaryDark">@color/green_darker</item>
<item name="colorAccent">@color/accent</item>
</style>
在 Android API >= 21 上,我得到了我想要的结果,但在其他设备上,对话框周围会出现一个“框”。
有没有一种方法可以消除对话框周围的“框”,并且即使在 API < 21 上也可以应用颜色和 Material 主题,最好不需要任何其他依赖项?
API < 21 上的应用:
API >= 21 上的应用:
Theme.AppCompat.Dialog
替换为android:Theme.DeviceDefault.Dialog.Alert
会导致崩溃。 - snowdragonTextAppearance.AppCompat.*
。根据异常情况,你可能需要定义自定义文本外观。 - Eugen PechanecTextAppearance.AppCompat.*
。定义自定义文本外观样式并使用它们。继承@android:TextAppearance
并根据 Material Design 规范(文本类型 Body 1)自定义textColor
和textSize
,你就可以了。 - Eugen Pechanec