android - Android - 其他主题的 FloatingActionButton
问题描述
我必须在我公司的 Android 应用程序中实现 FloatingActionButton。问题是,该应用程序是带有 Holo 主题的预样式。当我运行该应用程序时,它崩溃了,错误是
"java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat".
所以,问题是:有没有办法在没有 AppCompat 主题的情况下实现 FloatingActionButton。
解决方案
FAB 内置在新的 Design Compat 库中 - 早在 API 7 就可以在设备上运行。您需要将其作为依赖项包含在内才能使用它(并且应该毫不犹豫地这样做)。
如果您想避免使用库(或任何外部代码),您需要自己绘制 FAB(使用 Shape Drawable)。
总之,使用 Design Compat 库是支持 FAB 的首选方法,您应该使用它。Design Compat 库是“纯/材料 API21 的东西”。
除了设计支持库中的 API 之外,没有为任何 API 实现 FAB 实现。您必须包含该库,或者完全自己实现代码。
设计库依赖于 AppCompat,因此如果您计划使用本机 fab,您还需要包含 AppCompat 的依赖项。
“请注意,由于设计库依赖于 Support v4 和 AppCompat 支持库,当您添加设计库依赖项时,它们将自动包含在内。”
推荐阅读
- c++ - 在 C++ 中将优先级队列转换为整数向量
- html - 如果我在两个页面之一上,如何应用 CSS 样式更改?
- php - 向 PHP 服务器发送大量 base64 数据
- loops - ffmpeg - 制作一个无缝的循环
- shell - 仅匹配“文件”的 grep 计数大于 3
- vue.js - Ionic + Vuew:编译时出现奇怪的错误
- grails - Grails 3:禁用传入数据的数据库绑定
- c# - 在 Shell 中动态创建 FlyoutItem 列表?
- ios - 我可以在不使用 ios14 上的 xcode12 调用 AppTrackingTransparency 框架的情况下获得 idfa
- c# - 是否可以将 System.ValueTuple 4.5.0 安装到 TFS 2015 服务器上?