• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

RecyclerView: 这个是RecycleView的常见用法

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

RecyclerView

开源软件地址:

https://gitee.com/zhaoyanjun/RecyclerView

开源软件介绍:

RecyclerView

RecyclerView不再负责显示工作,用法比ListView更解耦。和ListView不一样的是,RecyclerView不再负责Item的摆放等显示方面的功能。所有和布局、绘制等方面的工作Google都其拆分成不同的类进行管理。所以开发者可以自定义各种各样满足定制需求的的功能类。

这个是RecycleView的常见用法

类名说明
RecyclerView.Adapter托管数据集合,为每个Item创建视图
RecyclerView.ViewHolder承载Item视图的子视图
RecyclerView.LayoutManager负责Item视图的布局
RecyclerView.ItemDecoration为每个Item视图添加子视图,在Demo中被用来绘制Divider
RecyclerView.ItemAnimator负责添加、删除数据时的动画效果

项目介绍

LayoutManagerRecyclerView

  • recyclerview的线性布局

recyclerView.setLayoutManager( new LinearLayoutManager( this ));

  • recyclerview的网格布局

recyclerView.setLayoutManager( new GridLayoutManager( MainActivity.this , 3 ));

  • recyclerview的瀑布流布局

recyclerView.setLayoutManager( new StaggeredGridLayoutManager( 2 , StaggeredGridLayoutManager.VERTICAL));

  • recyclerview的增加数据

myAdapter.notifyItemInserted( size );

  • recyclerview的删除数据

myAdapter.notifyItemRemoved( 0 );

  • recyclerview的刷新数据

myAdapter.notifyDataSetChanged();

  • 更新数据的方法
 /**     * 添加数据     * @param content     * @param position     */    public void addItem( String content, int position) {        list.add(position, content);        notifyItemInserted(position);    }    /**     * 增加数据     * @param content     */    public void addItem( String content ){        if ( list == null ) {            list = new ArrayList<>() ;        }        list.add( list.size() , content );        notifyItemInserted( list.size() );    }    /**     * 删除数据     * @param model     */    public void removeItem(String model) {        int position = list.indexOf(model);        list.remove(position);        notifyItemRemoved(position);//Attention!    }    /**     * 删除数据     * @param position     */    public void removeItem( int position ){        list.remove( position ) ;        notifyItemRemoved( position );    }

ItemDecorationRecyclerView

  • recyclerview的Item装饰器 ItemDecoration

    效果图

    ItemDecoration 常见的方法

SectionRecyclerView

  • 标签功能

PinnedSectionRecyclerView

  • 黏性标签功能

AnimatorRecyclerview item 动画效果

  • 默认动画
  //设置默认的动画  recyclerView.setItemAnimator( new DefaultItemAnimator()) ;
  • 第三动画库

https://github.com/gabrielemariotti/RecyclerViewItemAnimators

  //从屏幕底部飞进来的动画  recyclerView.setItemAnimator( new SlideInOutBottomItemAnimator( recyclerView ));  //从屏幕左侧飞进来的动画  recyclerView.setItemAnimator( new SlideInOutLeftItemAnimator( recyclerView ));  //从屏幕右侧飞进来的动画  recyclerView.setItemAnimator( new SlideInOutRightItemAnimator( recyclerView ));  //从屏幕顶部飞进来的动画  recyclerView.setItemAnimator( new SlideInOutTopItemAnimator( recyclerView ));  //缩放进入屏幕, (备注:测试的时候有bug )  recyclerView.setItemAnimator( new ScaleInOutItemAnimator( recyclerView )) ;  //缩放的同时从屏幕右侧飞进来  (备注:测试的时候有bug )  recyclerView.setItemAnimator( new SlideScaleInOutRightItemAnimator( recyclerView ));  
  • 其他动画开源库

https://github.com/wasabeef/recyclerview-animators

MultiRecyclerView

  • recyclerview的复杂布局

效果图

MultiRecyclerView2

这个项目是复杂布局分发框架 MultiType的使用

  • MultiType 是什么?

MultiType 就是一个多类型列表视图的中间分发框架,它能帮助你快速并且清晰地开发一些复杂的列表页面。它本是为聊天页面开发的,聊天页面的消息类型也是有大量不同种类,并且新增频繁,而 MultiType 能够轻松胜任,代码模块化,随时可拓展新的类型进入列表当中。它内建了 类型 - View 的复用池系统,支持 RecyclerView,使用简单灵活,令代码清晰、拥抱变化。

  • github:

https://github.com/drakeet/MultiType

https://github.com/drakeet/MultiTypeTemplates

  • 相关博客:

Android 复杂的多类型列表视图新写法:MultiType

Android 复杂的列表试图新写法 MultiType

Android 复杂的列表视图新写法: MultiType 详解篇

  • Android 项目引用

compile 'me.drakeet.multitype:multitype:2.2.2'

效果图:

RefreshRecyclerView

这个项目是实现下拉刷新,滑到底部自动加载的

参考资料


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap