9

我决定为 Android 制作最低 API 版本 21,但这是否意味着不再使用 AppCompat 没有意义?只使用普通的 Material Design / 没有 AppCompat / 等等?

4

2 回答 2

7

不,您应该始终使用 AppCompat。这可确保您的应用程序在所有 API 级别上已经保持一致,并且您可以访问所有新 API(例如使用仅在 API 23 中引入的彩色按钮)。

许多其他库,例如设计支持库也需要使用 AppCompat。

于 2016-08-09T00:52:56.070 回答
4

您需要使用的一种情况appcompat-v7是如果您想要一个操作栏,并且您的操作栏minSdkVersion低于 11。目前,没有常用和维护的替代方案appcompat-v7

否则,appcompat-v7需要考虑,但这不是必需的,并且使用它有一定的成本:

  • 增加了脆弱性,许多小部件被子类取代。您的布局可能需要一个EditText,但会默默地用一个扩展AppCompatActivity的 替换它。在理想的世界中,这不会造成任何问题。然而,设备制造商有过混淆标准小部件实现的历史。创建标准小部件的子类可能会遇到设备制造商引入的错误。我个人经常遇到这个问题。AppCompatEditTextEditTextEditText

  • 应用程序大小增加。appcompat-v7将 ~1MB 添加到您的 APK 大小。正如谷歌喜欢指出的那样,开发人员应该积极尝试减少他们的 APK 大小,因为一些用户必须按 MB 支付带宽(因此下载 APK 需要成本),而且一些设备对存储空间非常吝啬。

  • 强制材料设计美学。出于政治原因,谷歌希望所有应用都使用 Material Design。Material Design 有其拥护者和批评者。并非所有设计师都想遵循 Material Design。appcompat-v7可能会使实施非 Material Design 设计变得更加困难,具体取决于与 Google 规范的期望偏差。

  • 预装应用程序的视觉二分法。Android 4.x 设备的用户已经习惯了Holo主题,许多非谷歌预装的应用程序都会有Holo基于主题的主题。对于碰巧使用 Google 应用程序的用户,他们可能已经接触过 Material Design,并且现在可能已经习惯了。当然,Android 5.0+ 在 Android 设备生态系统中所占的比例也在不断增长。然而,与三星、LG、SONY、HTC 等将在其 Android 4.x 设备上安装的应用程序相比,Material Design 应用程序显得格格不入。目前尚不清楚材料设计是否在某种程度上如此优越,以至于值得在这些设备上为用户带来差异。

这些问题中的任何一个都令人担忧吗?不,所以,如果你想使用appcompat-v7,请继续。但是,请理解这appcompat-v7是一种选择,应该有意识地、有意识地做出。

于 2016-08-15T22:19:59.763 回答