'Material'与'MaterialComponents'



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">

在这里你可以检查应用到主题的所有默认属性。

相关内容

  • 没有找到相关文章

最新更新