CardView是android5.0以上的新控件,卡片式布局,继承FrameLayout实现,今天这里主要说一下CardView的使用和注意的地方

1.首先肯定需要引用gradle配置

compile'com.android.support:cardview-v7:21.0.+'

介绍一下主要的属性:

app:cardBackgroundColor这是设置背景颜色

app:cardCornerRadius设置圆角大小

app:cardElevation设置z轴的阴影

app:cardMaxElevation设置z轴的最大高度值

app:contentPadding 设置内容的内边距

app:contentPaddingLeft 设置内容的左内边距

app:contentPaddingTop 设置内容的上内边距

app:contentPaddingRight 设置内容的右内边距

app:contentPaddingBottom 设置内容的底内边距

具体的效果根据需求进行测试吧。

我们今天主要记录一下跳过使用这个东西的一些火坑

这玩意是5.0+上发布的 所以根据平时的习惯做出来以后再5.0+上的手机上运行很完美,根本看不出来问题。

但是有一天我用cardView+listView写好以后再4.4的一个机子上运行后发现cardview的外边距(layout_margin)很大。第一反应 肯定是兼容出问题咯,果然发现在低版本中设置了 CardElevation 之后 CardView 会自动留出空间供阴影显示,而 Lollipop 之后则需要手动设置 Margin 边距来预留空间,导致我在设置 Margin 在 Android 5.0 机器上运行后发现 Kitkat 机器调试时发现边距非常大,严重地浪费了屏幕控件而且还很丑。

找到问题就好说,解决方案就很明确了:

1.在res下创建values(默认已经存在)和一个values-v21的文件夹并且在两个文件下创建dimens.xml文件

2.dimens.xml文件中自定义一个dimen

values-v21文件夹下

10dp

values文件夹下

0dp

因为在低版本下设置CardElevation后默认就有了边距,所以这里我们就不要在设置边距了,不然会叠加导致低版本外边距很大

3.只需要在CardView下设置

android:layout_margin="@dimen/cardView_m"

这样就可以根据自己的需求可以调整出自己想要的距离

--------------------华丽丽的分割线----------------------

好吧,再说一下CardView上的按下,点击的效果实现。你以为还是跟正常的background设置一下就好了?如果真这样,那就可以不用说了,很明显不是。

foreground:通过这个东西来设置点击的效果实现

android:foreground="?attr/selectableItemBackground"

但是很尴尬,这个只能支持5.0+上的版本,低版本看着很low,有点生硬,所以还是自己动手才是王道,下面我提供一下自己实现的点击效果:

1.创建drawable和drawable-v21文件夹,并且实现以下的一个select_card_foreground.xml文件

drawable-v21文件夹下

select_card_foreground.xml

android:color="#20000000"

android:drawable="@drawable/card_foreground_selector" />

card_foreground_selector.xml文件

drawable文件夹下

select_card_foreground.xml

android:drawable="@drawable/card_foreground_selector"

android:insetLeft="2dp"

android:insetRight="2dp"

android:insetTop="4dp"

android:insetBottom="4dp"/>```

card_foreground_selector.xml文件

```

最后在CardView设置:

android:foreground="@drawable/select_card_foreground"

最后就能完美使用了。

android+cardview用法,Android CardView的使用相关推荐

  1. android layoutinflater用法,Android LayoutInflater的用法详解

    相信我们在开发过程中肯定接触过LayoutInflater,比如ListView的适配器里的getView方法里通过LayoutInflater.from(Context).inflater来加载xm ...

  2. android dispatchtouchevent 用法,android – 检测每个触摸事件,而不会覆盖dispatchTouchEvent()?...

    回答这可能对他人有帮助.答案将有助于需要拦截触摸事件的库. 如果你不想覆盖dispatchTouchEvent()(Imp,如果你是编程库)方法的活动,那么我们可以使用Window.Callback类 ...

  3. android surface用法,Android SurfaceView的基本使用

    一.为什么要SurfaceView 大多数情况下我们的自定义View都会选择去继承View或ViewGroup来实现,但是为什么系统还要为我们提供一个SurfaceView呢? 首先我们知道View类 ...

  4. android weakreference 用法,Android WeakReference的理解与使用

    前言: 看到篇帖子, 国外一个技术面试官在面试senior java developer的时候, 问到一个weak reference相关的问题. 他没有期望有人能够完整解释清楚weak refere ...

  5. android plurals用法(单复数)

    0.相关文章 android plurals用法 Android中的string资源占位符及Plurals string 1.使用 对一个给定的语言和数字来说,决定使用哪一个case的规则是很复杂的, ...

  6. android卡片风格,[Android] Android 卡片式控件CardView的优雅使用

    [Android] Android 卡片式控件CardView的优雅使用 CardView是在安卓5.0提出的卡片式控件 其具体用法如下: 1.在app/build.gradle 文件中添加 comp ...

  7. Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载

    为什么80%的码农都做不了架构师?>>>    随着 Google 推出了全新的设计语言 Material Design,还迎来了新的 Android 支持库 v7,其中就包含了 M ...

  8. Android应用开发:CardView的使用及兼容

    原文:http://blog.csdn.net/airk000/article/details/39520977 点击阅读原文 ------------------------------------ ...

  9. android cardview控件,CardView控件的使用方式

    欢迎Follow我的GitHub, 关注我的简书. 其余参考Android目录. CardView Android CardView是一种卡片视图, 主要是以卡片形式显示内容, 让我们先看看效果吧. ...

  10. Android——安卓卡片样式——CardView使用、CardView失效等

    本人所有博客均是记录自己的学习和爬坑的过程,顺便分享一些好用的东西给同学,没有任何商用行为,若有侵权,请及时联系本人1521976977@qq.com.如果对你有帮助的话不妨点赞呗~谢谢 卡片Card ...

最新文章

  1. 关于VS项目平台的x86,x64,Any CPU以及Debug和Release
  2. 马斯克在线“求逮捕”:美国县政府不让特斯拉复工,钢铁侠彻底怒了
  3. FGPA 双向 IO 自动方向控制
  4. Synchronize对象改变
  5. Zuul简介及代码示例
  6. 如何使用 SAP Kyma 控制台手动发送 SAP Commerce Cloud Mock 应用暴露的事件
  7. WebAssembly生态将完善网络安全性
  8. spring roo_使用Spring Roo进行快速云开发–第1部分:Google App Engine(GAE)
  9. Oracle 大规模 delete,update 操作 注意事项
  10. python word模板 图_科学网—Python绘制可插入Word的高清矢量图(SVG转EMF) - 任晓东的博文...
  11. 《AutoCAD 2014中文版超级学习手册》——1.4 配置绘图系统
  12. 带接口的webservice方式发布
  13. php高并发解决方案
  14. 新版itunes添加铃声
  15. openwrt作旁路由配置教程
  16. Web前端 vs Web后端 区别是什么
  17. 成都拓嘉启远:拼多多开店怎样节约物流成本
  18. redis使用及Spring Session+Redis实现Session共享
  19. ios appstore 审核 Guideline 5.2.2 资讯类APP解决方案
  20. 电脑显示请检查映像服务器,该任务映像已损坏或已篡改的解决方法

热门文章

  1. 《大众创业做电商——淘宝与微店 开店 运营 推广 一册通》一一1.2 创业者应具备的条件与经验...
  2. 【SOLIDWORKS学习笔记】工程图基础操作
  3. Sql Server2014 安装Northwind数据库
  4. [iOS] HealthKit 睡眠分析
  5. 2021中兴捧月神算师算法赛,4-24第一场,第一题:A - 跳高,2021-4-27
  6. JS实现自定义右键菜单
  7. Layabox2初学(一)javascript
  8. ae中合成设置的快捷键_提升AE效率的20个快捷键
  9. a4纸和ipad对比_我告诉你10.2寸ipad和9.7寸对比
  10. 分子量-算法竞赛习题3-2:给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C, H, O, N,原子量分别为12.01, 1.008, 16.00, 14.01。