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"/>
我似乎得到紫色的文字。它们之间的区别是什么?
最后,如果我要导出&;mytheme &;从Theme.AppCompat...
(而不是Theme.MaterialComponent...
)我得到白色的文字。这是怎么回事?
Theme.Material
由Android从API 21开始提供。Theme.MaterialComponents
是由Material Components库提供的。
他们是完全不同的。
如果你想使用材质组件库,最好的方法是使用MaterialAlertDialogBuilder
.
return new MaterialAlertDialogBuilder(context, R.style.myTheme);
和继承主题叠加从:
<style name="myTheme" parent="ThemeOverlay.MaterialComponents.MaterialAlertDialog">
在这里你可以检查应用到主题的所有默认属性。