安卓recyclerView 分割线的那些事】的更多相关文章

在这里我想记录下recyclerView 分割线遇到的一些问题,主要提供一些个人思路,代码可能不多~ 1.宽度问题 描述:我现在需要做一张卡片,卡片里面是一条条联系人,而且我们卡片外层是有阴影的,我的做法是,一个recyclerView解决,给recyclerView加个background,用layer-list 进行背景叠加出阴影,然后设置分割线,效果如下: 可以看出来一个问题,分割线超出了绿色宽度,这里想想也是正常的,不过这个效果肯定不行,我想到两个办法 第一个办法:减法 分割线 w =…
参照网络上众多的分割线设计方法,对方法进行调整和修改,最终完成的比较通用的RecyclerView分割线,底部会附上参考网址,大家可以去看一下. 在正文之前,先说一下个人看法:研究下来,我发现,其实最简单的办法就是直接去设置ItemView的Margin,如果需要分割线有颜色,大可直接在ItemView父级容器的Background属性上做文章. 虽然这个文章是本人发表的,但是我并不推荐大家使用,本身算法过于复杂,能解决大部分问题,但不是全部,我也更热衷于通过Margin+Background的…
在上一期通过简单学习,已经领略到了RecyclerView的灵活性,当然都是一些最基础的用法,那么本期一起来学习RecyclerView的分割线使用. 相信有的比较细心的同学已经发现了,使用RecyclerView实现的List列表和ListView实现的列表有一些细微差距,item之间没有分割线,导致item之间相隔不明显,但在实际开发中有又往往需要. 由于RecyclerView并没有支持divider这样的属性,需要我们自己想办法来完成.主要有两种实现方式,接下来分别对其进行学习. 一.背…
1.先在布局文件中写 <android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent"/> 2.mainactivity pub…
概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用. 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView.GridView. 那么有了ListView.GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecor…
概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用. 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView.GridView. 那么有了ListView.GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecor…
崇拜下鸿洋大神,原文地址:http://blog.csdn.net/lmj623565791/article/details/45059587 概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用. 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView.GridView. 那么有了ListView.GridView为什么还需要RecyclerView这样的控件呢?整体上看…
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45059587: 本文出自:[张鸿洋的博客] 概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用. 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView.GridView. 那么有了ListView.GridView为什么还需要RecyclerView…
崇拜下鸿洋大神,原文地址:http://blog.csdn.net/lmj623565791/article/details/45059587 概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用. 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView.GridView. 那么有了ListView.GridView为什么还需要RecyclerView这样的控件呢?整体上看…
Android RecyclerView 使用完全解析 体验艺术般的控件 标签: Recyclerviewpager瀑布流 2015-04-16 09:07 721474人阅读 评论(458) 收藏 举报  分类: [Android 5.x](10)  版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45059587: 本文出自:[张鸿洋的博客]…
在之前学习ListView的时候,有学习过如何给ListView添加列表头和列表尾.但是通过近几期的学习,发现RecyclerView是一个比ListView更加强大和灵活的组件,今天一起来学习如何给RecyclerView添加首尾视图. 首先来简单回顾一下ListView是如何添加列表头和列表尾的,先定义好首尾视图,然后通过addHeaderView和addFooterView两个方法来加载即可,相对来说比较简单.然后在RecyclerView中并未发现类似的方法,那么应该如何为其添加首尾视图…
列表的数据往往会跟随业务逻辑不断刷新,所呈现出来的数据需要动态更新,那么RecyclerView是如何动态更新数据的呢? 之前在学习ListView的时候如果数据改变,需要调用notifyDataSetChanged()方法来刷新数据,而在RecyclerView中当数据改变时分别调用notifyItemChanged.notifyItemInserted和notifyItemRemoved方法来更新页面数据. 接下来通过一个案例来学习如何动态更新数据,当单击某个item时则在其下方插入一个it…
前面两期学习了RecyclerView的简单使用,并为其item添加了分割线.在实际运用中,无论是List还是Grid效果,基本都会伴随着一些点击操作,那么本期就来一起学习RecyclerView的点击事件. 在介绍RecyclerView开篇的时候简单提到过,要实现一些控制点击.长压事件需要自己完成,不像之前学的ListView有自带ClickListener和LongClickListener,但其实更加灵活多样,可以对点击方式按照自己的方式来实现. 仍然在上一期的代码基础来进行修改,既然R…
在过去很多年,我们的PC或者手机设备都是采用拟物化的设计风格,IOS采用扁平化的特性,android在2014年IO大会上说采用Material Design的设计风格,显示效果不能过于生硬的转换,而是平滑,过度的切换方式,避免线性的动画效果,而是代替以曲线的效果进行展示,并且所有的图标的动画切换都应该无缝化切换. 如果想深入了解材料设计即(material Design)的设计: 可以参看如下网址:http://design.1sters.com,尤其是android 应用的UED设计师们,可…
RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家能够通过导入support-v7对其进行使用.  据官方的介绍,该控件用于在有限的窗体中展示大量数据集.事实上这样功能的控件我们并不陌生.比如:ListView.GridView. 那么有了ListView.GridView为什么还须要RecyclerView这种控件呢?总体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecorat…
之前总是会有人在一些开发群里问,有木有比较好使且功能强大些的RecyclerVew,比如支持下来刷新,加载更多等,还有人在问,如何为RecyclerView添加分割线,尤其是如何为网格布局添加分割线? 热心的群友会有一堆推荐,当然也不乏好事者来这么一句,自己封装去.... 我自己也用了挺久的RecyclerView,在使用过程中,往往也会碰到各种各样的需求.设计,秉着不重复造轮子的原则,我在github上也搜过挺多二次封装的RecyclerView,最后选择了那么几个,重新再次整合.封装,形成了…
随着大众生活水平的提高,再加上移动互联网的迅速发展,几乎每个人都至少拥有一台搭载Android系统的移动设备.Android设备的多样性给我们带来了很大的便捷,各Android设备拥有不同分辨率和不同屏幕大小,特别是平板电脑和手机间的差别巨大,使得同样的界面在不同的设备上显示出不同的效果.为了能够同时兼顾到手机和平板电脑的开发,自Android 3.0版本开始引入了碎片的概念,也就是Fragment. Fragment作为Android最基本.最重要的基础概念之一,在开发中经常会用到,本章我们一…
在前面几期学习了Activity的创建.配置.启动和停止,还学了Activity的生命周期,本期一起来学习Activity有关的更多事儿. 一.数据保存 通过上一期 LogCat 窗口打印的日志可以看出,当 Activity失去焦点时,首先必然会执行onPause()方法,因此当项目中需要保存数据时,可以在onPause()方法中保存.同时,当两个Activity跳转时, MainActivity会先失去焦点让SecondActivity得到焦点,等到SecondActivity完全显示在前台时…
还记得我们一共学过了多少UI控件了吗?都掌握的怎么样啊. 安卓中一些常用控件学习得差不多了,今天再来学习一个新的控件CardView,在实际开发中也有非常高的地位. 一.CardView简介 CardView是Android 5.0系统引入的控件,相当于FragmentLayout布局控件然后添加圆角及阴影的效果. CardView继承自Framelayout,所以FrameLayout所有属性CardView均可以直接拿来用,不过CardView还有自己独有的属性,常用属性如下: app:ca…
在上一期分享的文章末尾留了一个课后作业,有去思考如何解决吗?如果已经会了那么恭喜你,如果还不会也没关系,本期一起来学习. 一.回退栈 在前面两期的示例中,当我们完成一些操作后,如果想要回到操作之前的状态,一般我们都会按返回键,如下图所示: 然而发现并没有按照我们想要的那样进行,反而退出了程序,那应该怎么得到想要的效果呢? 我们知道Activity有任务栈,用户通过startActivity将Activity加入栈,点击返回按钮将Activity出栈.Fragment也有类似的栈,称为回退栈(Ba…
在上一期我们学习了FragmentManager和FragmentTransaction的作用,并用案例学习了Fragment的添加.移除和替换,本期一起来学习Fragment显示和隐藏.绑定和解绑. 一.Fragment显示和隐藏 由于上一期有简单介绍过对应的api,这里直接通过案例来进行学习. 创建一个新的module名为fragmentshowhide,然后创建一个Fragment对应的布局文件fragment_demo.xml,代码如下: <?xml version="1.0&qu…
前面一起学习了Fragment的创建和加载,以及其生命周期方法,那么接下来进一步来学习Fragment的具体使用,本期先来学习Fragment添加.删除.替换. 一.概述 在前面的学习中,特别是动态加载的时候,有提到FragmentManager和FragmentTransaction类,这里先来详细了解一下其到底为何物. 1.FragmentManager 要管理Activity中的Fragments,就需要使用FragmentManager类.通过getFragmentManager()或g…
一个Activity可以同时组合多个Fragment,一个Fragment也可被多个Activity 复用.Fragment可以响应自己的输入事件,并拥有自己的生命周期,但它们的生命周期直接被其所属的Activity的生命周期控制. 一.Fragment状态 与Activity类似的是,Fragment也存在如下4种状态: 运行状态:当前Fmgment位于前台,用户可见,可以获得焦点. 暂停状态:其他Activity位于前台,该Fragment依然可见,只是不能获得焦点. 停止状态:该Fragm…
Fragment创建完成后并不能单独使用,还需要将Fragment加载到Activity中,在Activity中添加Fragment的方式有两种:静态加载和动态加载,接下来分别进行学习. 一.静态加载 静态加载Fragment非常简单,直接把Fragment当成普通的控件写在Activity的布局文件中.使用<fragment></fragment>标签,该标签与其他控件的标签类似,但必须要指定android:name属性或class属性,其属性值为Fragment的全路径名称.…
在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间数据的传递. 一.常用数据类型 在前面几节我们只学习了一些常用类型的数据传递,主要是以下这些重载方法: putExtra(String name, boolean value) putExtra(String name, byte value) putExtra(String name, char value) putExtra(String name, short va…
上一节学习了将简单的数据从MainActivity传递到SecondActivity,本节一起来学习数据如何从SecondActivity回传到MainActivity. 一.简介 前面己经提到,Activity 还提供了一个 startActivityForResult(Intent intent, int requestCode) 方法来启动其他Activity.该方法用于启动指定Activity,而且期望获取指定Activity返回的结果.这种请求对于实际应用也是很常见的,例如应用程序第一…
在Android开发中,经常要在Activity之间传递数据.前面也学习了Activity和Intent相关基础,接下来一起来学习Activity的数据传递. 一.简介 通过前面的学习知道,Intent可以用来开启Activity,同样它也可以用来在Activity之间传递数据.Intent提供了多个重载的方法来携带额外的数据,如下所示. putExtra(String name,  xxx value):向 Intent 中按 key-value 对的形式存入数据. getXxxExtra(S…
上一期学习了Intent的前三个属性,本期接着学习其余四个属性,以及Android系统常用内置组件的启动. 四.Data和Type属性 Data属性通常用于向Action属性提供操作的数据.Data属性接受一个Uri对象,一个Uri 对象通常通过如下形式的字符串来表示: content://com.android.contacts/contacts/1 tel:123 Uri字符串总满足如下格式: scheme://host:port/path 例如上面给出的 content://com.and…
Android应用将会根据Intent来启动指定组件,至于到底启动哪个组件,则取决于Intent的各属性.本期将详细介绍Intent的各属性值,以及 Android如何根据不同属性值来启动相应的组件. Intent 对象大致包含 Component.Action.Category.Data.Type.Extra 和 Flag 这 7 种属性,其中Component用于明确指定需要启动的目标组件,而Extra则用于携带需要交换的数据. 一.Component属性 Intent 的 Componen…
前面学习Activity时己经多次使用了 Intent,当一个Activity需要启动另一个Activity时, 程序并没有直接告诉系统要启动哪个Activity,而是通过Intent来表达自己的意图:需要启动哪个Activity. Intent不仅是封装Android应用程序需要启动某个组件的“意图”,还是应用程序组件之间通信的重要媒介.本节开始来学习Intent的使用. 一.Intent介绍 Intent最常见的用途是绑定应用程序组件,并在应用程序之间进行通信.尽管 Intent 可以通过多…