【问题标题】:Dumping AppCompat for API 21为 API 21 转储 AppCompat
【发布时间】:2016-08-27 14:33:09
【问题描述】:

所以我正在创建一个 Lollipop 5.0 API 21 及更高版本的应用程序,对支持旧设备的兴趣为零。在使用 UI 元素和布局(侧边栏又名导航栏、墨水等)之类的 Material Design 时,我还需要 appcompat 库吗?剥离它时,我经常在尝试远离 AppCompat 的东西时遇到崩溃。将活动类型从 AppCompat 一种更改为 Normal 一种,我最终会遇到与布局类型相关的问题,例如不存在的协调器布局。

我还是 android 新手,这很令人困惑,因为当我尝试从其中一个模板更改它时,我的主题目前处于 appcompat 主题和材料设计之间的某个地方。

我了解到这是一个 android studio 问题,因为无论您设置的依赖项和最低 API 级别如何,它总是使用 appcompat。强制您手动覆盖每个隐式隐藏的 appcompat 调用。

当尝试转储 AppCompat 时,我需要做哪些更改才能实现?清单、活动、菜单、布局、样式?它似乎触及了所有这些东西。如果在没有 Appcompat 的情况下独占,您还需要 v21 文件夹还是会使用默认文件夹?

【问题讨论】:

    标签: android material-design android-5.0-lollipop android-appcompat


    【解决方案1】:

    在使用诸如 UI 元素和布局(侧边栏又名导航栏、墨水等)之类的 Material Design 时,我是否仍需要 appcompat 库?

    如果您使用的是设计支持库之外的类,例如NavigationView,则通常需要使用appcompat-v7AppCompatActivity。截至 2016 年 5 月上旬,Google 尚未发布可与 Theme.Material 一起使用的设计支持库类似物。您也许可以找到其中一些小部件的第三方库替代品,并且经验丰富的 Android 开发人员有时可以“交叉移植”这些组件以消除 appcompat-v7 依赖项。

    我了解到这是一个 android studio 问题,因为无论您设置的依赖项和最低 API 级别如何,它总是使用 appcompat。强制您手动覆盖每个隐式隐藏的 appcompat 调用。

    Android Studio 真正关心appcompat-v7 的唯一地方是新活动向导,您不必使用它。

    当尝试转储 AppCompat 时,我需要做哪些更改才能实现?清单、活动、菜单、布局、样式?

    这很难抽象地回答。您需要:

    • 停止使用设计支持库小部件和容器

    • 停止从AppCompatActivity继承

    • 将菜单资源中的 app: 属性更改为它们的 android: 等效项

    • 将您的主题更改为不使用Theme.AppCompat

    如果在没有 Appcompat 的情况下独占,您仍然需要 v21 文件夹还是会使用默认文件夹?

    -v21 资源目录未绑定到 appcompat-v7。它们仍将在 API 级别 21+ 的设备上使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-08
      • 2014-12-30
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 2015-12-21
      相关资源
      最近更新 更多