如何解决“材料”与“材料组件”
Theme.Material...
和 Theme.MaterialComponents...
有什么区别?
我正在创建一个警告对话框,当我创建它时使用:
new AlertDialog.Builder(context,android.R.style.Theme_Material_Light_Dialog_Alert);
我在按钮上看到了“colorAccent”彩色文本。
但是,当我使用以下方法创建对话框时:
return new AlertDialog.Builder(context,R.style.myTheme);
与:
<style name="myTheme" parent="@style/Theme.MaterialComponents.Light.Dialog.Alert"/>
我似乎收到紫色文本。这些有什么区别?
最后,如果我要从 Theme.AppCompat...
(而不是 Theme.MaterialComponent...
)导出“myTheme”,我会得到白色文本。这是怎么回事?
解决方法
Theme.Material
由 Android 从 API 21 开始提供。Theme.MaterialComponents
由 Material Components 库提供。
它们完全不同。
如果您想使用材料组件库,最好的方法是使用 MaterialAlertDialogBuilder
。
return new MaterialAlertDialogBuilder(context,R.style.myTheme);
并从以下继承主题覆盖:
<style name="myTheme" parent="ThemeOverlay.MaterialComponents.MaterialAlertDialog">
您可以在此处查看应用于主题的所有 default attributes。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。