android - 更改 CardView 阴影颜色
问题描述
这个问题被问了很多次,但我仍然没有找到解决这个问题的好方法。
为什么我需要这样做?好吧,因为我和我的团队开发的项目具有 iOS 风格。
我尝试了什么?
- 9.pathch 阴影生成器,但 9.pathes 本质上是 png,它没有给我任何灵活性,如果我要使用这种方法,我应该在任何地方编辑边距。
- Carbon 库它支持自定义阴影并且它们被绘制在视图边界之外,但是当库不为圆角绘制阴影时,存在关于圆角矩形的问题。
- 使用旧的 CardView 实现并覆盖它的阴影颜色,但它被绘制在卡片边界内,所以它不是选项。
那么有没有办法改变 CardView 的阴影颜色,对所有布局文件进行最少的编辑,并像原始 CardView 一样在视图之外绘制阴影?
解决方案
考虑一下twitter 中的这个线程,Nick Butcher 讨论了如何实现该功能:
有关详细信息,请参阅outlineAmbientShadowColor
、和属性。不幸的是,从 API 28 开始,这是可能的。outlineSpotShadowColor
spotShadowAlpha
ambientShadowAlpha
对于较低的 API,Nick 分享了一个要点。结果如下:
在 API 21 上运行
该技术不直接连接到CardView
,它可以应用于任何View
.
推荐阅读
- reactjs - ReactJS 需要帮助找到最大深度超出错误的原因
- ios - Swift:如何更改应用程序内部的语言?
- visual-studio-code - 用VSCode搭建python环境,安装python插件时,VSCode无法识别'python:Select Interpreter'命令
- kubernetes - 如何引用 kubernetes docker-registry
- php - 如何使用 PHP REST API 和使用 JSON 格式的 REACT js 上传图像?
- r - 转换时态数据时不需要的 NA
- python -
为什么我的 python 代码没有显示按钮? - firebase-realtime-database - 使用 Flutter 监听特定 Firestore 文档中的两个准确(但独立)的字段
- reactjs - Styled-components 使用钩子打破反应控制的形式。有解决办法吗?
- sql-server - 为什么具有 sysadmin 权限的用户无法以 EXECUTE AS 用户身份访问 msdb?