【问题标题】:What is the difference between Theme.AppCompat and Theme.Material in Android?Android 中 Theme.AppCompat 和 Theme.Material 有什么区别?
【发布时间】:2017-09-13 07:56:56
【问题描述】:

就我而言,这里有什么不同:

<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

【问题讨论】:

  • 你试过检查android源代码吗?
  • 无论如何,一个是AppCompat,这意味着它可以在比Material存在之前更旧的设备上工作......
  • 检查this
  • @cricket_007 我在源码中试过了,但是我是Android开发新手,所以有些困惑

标签: android material-design


【解决方案1】:

这是 Android 5 及更高版本使用的原始材料设计主题不确定它是如何工作的。用于应用设计的新 Android 库

<style name="AppTheme" parent="android:Theme.*">

这是在棒棒糖之前的设备上使用材料设计的一种方式,可保持兼容性。

<style name="AppTheme" parent="Theme.AppCompat.*">

您可以使用 AppCompat 设计较新的 API,并且仍然可以在比材料设计的基础级别更早的 API 级别上工作。

在这种情况下,它实质上意味着您可以在早于 Material Design 的平台上运行 Material Design。这不是as important anymore,因为在撰写本文时,早期版本最多占市场份额的 2.5%。

但是请注意,使用 AppCompat 确实为您提供additional compatibility helpers,而不仅仅是能够在旧设备上使用材料主题。另请注意,AppCompat 已被弃用,取而代之的是当前主流的任何系统,而且 Google 尚未取消(Jetpack?),这可能会或可能不会以不同的方式工作。

【讨论】:

  • 我只是想指出,这两个主题呈现文本的方式之间存在细微差别。这可能是由于字体的差异,但如果您要从一种字体切换到另一种字体,请小心。
【解决方案2】:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">    
<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">

Theme.AppCompat 适用于 API 7+

Theme.Material 适用于 API 21+

【讨论】:

  • 如何处理这两者。?
猜你喜欢
  • 2021-05-24
  • 1970-01-01
  • 1970-01-01
  • 2012-09-01
  • 2013-01-25
  • 2020-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多