我决定为 Android 制作最低 API 版本 21,但这是否意味着不再使用 AppCompat 没有意义?只使用普通的 Material Design / 没有 AppCompat / 等等?
2 回答
您需要使用的一种情况appcompat-v7
是如果您想要一个操作栏,并且您的操作栏minSdkVersion
低于 11。目前,没有常用和维护的替代方案appcompat-v7
。
否则,appcompat-v7
需要考虑,但这不是必需的,并且使用它有一定的成本:
增加了脆弱性,许多小部件被子类取代。您的布局可能需要一个
EditText
,但会默默地用一个扩展AppCompatActivity
的 替换它。在理想的世界中,这不会造成任何问题。然而,设备制造商有过混淆标准小部件实现的历史。创建标准小部件的子类可能会遇到设备制造商引入的错误。我个人经常遇到这个问题。AppCompatEditText
EditText
EditText
应用程序大小增加。
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
是一种选择,应该有意识地、有意识地做出。