【问题标题】:Android Design Support Library And Material Design Backwards Compatibility?Android 设计支持库和 Material Design 向后兼容?
【发布时间】:2015-05-30 19:16:19
【问题描述】:
我是新来的,所以请耐心等待!
我对新的设计支持库(以及如何实现支持库)有点困惑,我有两个问题:
- 我对如何实现支持库感到困惑。是不是像说“如果操作系统版本低于 5.0 版,使用 V7 支持库”那么简单,还是我必须编写一个 'Alternative Layout'(一个用于运行 +5.0 的设备,一个用于运行旧版本的设备安卓?)
- 设计支持库是否替换或添加到 V7 支持库? (如果我想在应用程序中包含卡片和小吃店,我可以只使用设计支持库还是必须将它与 v7 cardview 库一起使用?我知道这是一个愚蠢的问题,但我只是想确定一下。)
非常感谢!
【问题讨论】:
标签:
android
android-support-library
material-design
android-appcompat
android-design-library
【解决方案1】:
您可以使用support libraries 将最后一个 api(例如 21)引入的一些功能反向移植到运行先前 api 级别的旧设备。
例如,API21 引入了一个新的小部件,Toolbar。此小部件只能在 API >=21 的设备中使用。
使用appcompat rel.21(v7 支持库),您可以使用Toolbar(注意包)在运行 API>=7 的旧设备中实现您的工具栏。
这可能是因为支持库包含在您的 apk 中。
设计支持库是一个添加新功能的新库。
它包含 Snackbar、TextInputLayout、FloatingActionButton 等视图,但不包含 Card。
所以在设计支持库中使用这个依赖:
compile 'com.android.support:design:22.2.0'
这个依赖使用AppCompat库
compile 'com.android.support:appcompat-v7:22.2.0'
官方 CardView 的这个依赖
compile 'com.android.support:cardview-v7:22.2.0'
查看官方文档了解更多信息。
【解决方案2】:
我对如何实现支持库感到困惑。是像说“如果操作系统版本低于 5.0 版,使用 V7 支持库”那么简单,还是我必须编写一个“替代布局”(一个用于运行 +5.0 的设备,一个用于运行旧版本的设备安卓的?)
这些库会为您提供与其中包含的视图的 pre-Lollipop(和 pre-M)设备的兼容性。
设计支持库是否替换或添加到 V7 支持库? (如果我想在应用程序中包含卡片和小吃店,我可以只使用设计支持库还是必须将它与 v7 cardview 库一起使用?我知道这是一个愚蠢的问题,但我只是想确定一下。)
添加到。设计支持库包含一些专用于帮助实现完美“物化”应用程序的视图。对于 RecyclerView、CardView、Palette 等,您必须使用它们单独的支持库。例如:
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:cardview-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
compile 'com.android.support:design:22.2.0'