放弃使用AppCompat以适配API 21

4
我正在创建一个应用程序,该应用程序是Lollipop 5.0 API 21及更高版本,不支持旧设备。在使用Material Design UI元素和布局(侧边栏和导航栏、墨水等)时,我是否仍需要appcompat库?在剥离它时,我经常遇到从AppCompat转移时的崩溃问题。将活动类型从AppCompat更改为普通类型后,我遇到了关于不存在诸如协调器布局之类的布局类型依赖的问题。
作为一个新手,这很困惑,因为当我试图从模板之一更改主题时,我的主题目前处于appcompat主题和Material Design之间的某个地方。
我已经读到这是一个Android Studio的问题,因为它总是使用appcompat,而不管您设置的依赖项和最小API级别如何。它强制您手动覆盖每个隐式隐藏的appcompat调用。
当尝试删除AppCompat时,我需要进行哪些更改才能实现这一点?清单、活动、菜单、布局、样式?似乎触及所有这些事情。如果不使用AppCompat进行独家开发,是否仍需要v21文件夹,还是它会获取默认的文件夹?
1个回答

5
如果您在使用Design Support库中的类,例如NavigationView,则通常需要使用appcompat-v7和AppCompatActivity。截至2016年5月初,Google尚未发布可与Theme.Material一起使用的Design Support库模拟版。您可能能够找到第三方库替代某些小部件,并且经验丰富的Android开发人员有时可以“交叉移植”这些组件以消除appcompat-v7依赖项。
Android Studio真正关心appcompat-v7的唯一位置是在新活动向导中,您不必使用它们。
抛弃AppCompat时,需要进行哪些更改才能使其发生变化?清单、活动、菜单、布局、样式?
在抽象层面上很难回答这个问题。您需要:
- 停止使用Design Support库小部件和容器 - 不再继承AppCompatActivity - 将菜单资源中的应用程序属性更改为其android等效属性 - 更改主题以不使用Theme.AppCompat
-v21资源目录与appcompat-v7无关。它们仍将在API Level 21+设备上使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接