当前位置: 首页 > 知识库问答 >
问题:

如果我将minAPI设置为21,是否需要AppCompat?

丌官开宇
2023-03-14

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

共有2个答案

卓麒
2023-03-14

您需要使用appcompat-v7的一个场景是,如果您想要有一个操作栏,并且您的minSdkVersion低于11。目前,对于这一点,除了appcompat-v7之外,没有常用和维护的替代方案。

否则,appcompat-v7是需要考虑的,但它不是一个需求,并且使用它有明确的成本:

>

  • 脆弱性增加,许多小部件被子类替换。您的布局可能会调用EditText,但是AppCompatActive会默默地将其替换为扩展EditTextAppCompatEditText。在理想的世界里,这不会构成问题。然而,设备制造商有扰乱标准小部件实现的历史。创建标准小部件的子类可能会触发设备制造商引入的错误。我个人经常遇到这种情况,特别是EditText

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

    强制材料设计美学。出于自身的政治原因,谷歌希望所有应用程序都使用材料设计。材料设计既有拥护者也有反对者。并非所有的设计师都想遵循材料设计appcompat-v7可能会增加非材料设计的难度,具体取决于与谷歌规范的预期偏差。

    预装应用程序的视觉二分法。Android4的用户。x设备用于Holo主题,许多非谷歌预装的应用程序将具有基于Holo的主题。对于碰巧使用谷歌应用程序的用户来说,他们已经接触到了材料设计,现在可能已经习惯了。当然,Android5.0在Android设备生态系统中所占的比例也在不断增长。然而,与三星、LG、索尼、HTC等Android4上的应用程序相比,材料设计应用程序显得格格不入。x设备。目前尚不清楚材料设计是否如此优越,是否值得用户在这些设备上有所不同。

    这些问题中是否有任何一个显示停止?不需要。因此,如果您想使用appcompat-v7,请直接使用。但是,请理解,appcompat-v7是一种选择,应该有意识、有目的地做出选择。

  • 辛可人
    2023-03-14

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

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

     类似资料:
    • Spring框架中有一条经验法则——将无状态bean声明为单例,将有状态bean声明为原型。然而,没有关于原型作用域bean中有状态字段的信息,也没有关于是否应该同步查找方法以避免竞争条件的信息? 假设我有一个带多个字段的有状态bean 我有一个带有Lookup方法的Rest控制器 是否需要将字段声明为ThreadLocal 非常感谢各位的澄清。

    • 问题内容: 我正在使用自动提交功能连接到SQL Server。如果一切成功,我称之为提交。否则,我就退出。我是否需要显式调用回滚,还是在不提交就关闭连接时自动回滚? 如果很重要,我将从SAS的proc sql内部执行SQL命令。 更新: 如果未调用回滚,则SAS可能会在proc sql块的末尾自动调用commit。因此,在这种情况下,回滚将不仅仅是一个好习惯;这将是必要的。 最终更新: 我们最终切

    • 问题内容: 在涉及回调的Fragment示例中,通常它们在onAttach方法中分配侦听器,然后在onDetach方法中将侦听器设置为null。 这最后一部分是必要的吗?片段被分离/销毁时,监听器是否不会自动设置为null?还是在某些情况下,您可能会分离该片段并将其重新附加到其他位置,并且您不希望回调指向特定的内容,直到它重新附加至某个内容? 问题答案: 我从来没有明确地将监听器引用设置为,因为在

    • 我回到Java并回顾了我的一些旧代码,我看到了很多我已经做过的地方 或者从swing/awt包中实际导入特定类。我不记得是否需要导入java。awt.*在javax中使用任何东西。摇摆。*或者我会导入java。awt.*还有别的原因吗?换句话说,导入java的目的是什么。awt.*?我觉得使用JButton、JFrame等所需的一切都是javax。摇摆。

    • 问题内容: 我有一个非常简单的文件: 而且有效。 但是,当我删除元素时,应用程序看不到实体(所有类都带有注释)。 是否有自动扫描类的机制? 问题答案: 你可以使用 该文件定义了一个名为的持久性单元,它使用JTA感知数据源。所述和元素指定管持久类:实体类,可嵌入类和超类映射。该元素指定JAR文件都包含持久化类管理的打包持久单元可见,而该class元素明确命名持久化类管理。 对于,也可以进行设置和配置

    • 在Xamarin网站上,它说: 最低操作系统版本为Windows 7。Xamarin。Forms Windows支持需要Windows 8.1和Xamarin。Forms UWP支持需要Windows 10 这是否意味着如果我想在Android和iOS应用程序的Xamarin.FormsAPI中使用UI控件和XAML,我需要有Windows 10?还是只有当我想将我的应用程序部署到Windows手