Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等(二)

简介: Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等

RecyclerView使用-进阶篇


布局管理器


RecyclerView提供了三种布局管理器即:


LinearLayoutManager 线性布局管理器

StaggeredGridLayoutManager 瀑布流布局管理器

GridLayoutManager 网格布局管理器


线性布局管理器


这三种布局管理器都是通过setLayoutManager方法来设置

LinearLayoutManager 还可以设置横向滚动,只需将前面MainActivity中的layoutManager加一句代码即可:



LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
 layoutManager.setOrientation(RecyclerView.HORIZONTAL);
 mRecyclerView.setLayoutManager(layoutManager);


20200426233757366.gif


网格布局管理器


如果让一行显示多个,可以设置 GridLayoutManager网格布局管理器来实现


GridLayoutManager layoutManager = new GridLayoutManager(MainActivity.this,3);
//        layoutManager.setOrientation(RecyclerView.HORIZONTAL);  也能设置横向滚动
  mRecyclerView.setLayoutManager(layoutManager);


20200426234101150.gif


ItemDecoration


通过给 设置ItemDecoration 来装饰Item的效果,比如我们要设置间隔线



DividerItemDecoration mDivider = new    
                        DividerItemDecoration(this,DividerItemDecoration.VERTICAL);
mRecyclerView.addItemDecoration(mDivider);


20200427000723425.gif


Item 动画


RecyclerView提供了默认的ItemAnimator实现类:DefaultItemAnimator。该类可以帮我们实现一些炫酷的动画效果



DefaultItemAnimator itemAnimator = new DefaultItemAnimator();
defaultItemAnimator.setAddDuration(1000);
defaultItemAnimator.setRemoveDuration(1000);
 mRecyclerView.setItemAnimator(itemAnimator);


在MainActivity中添加了两个按钮, 一个添加item,一个删除item



Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                News news = new News();
                news.title = "标题 新内容" ;
                news.content = "内容 新内容" ;
                mNewsList.add(1,news);
                mMyAdapter.notifyItemInserted(1);
            }
        });
        Button button1 = findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mNewsList.remove(0);
                mMyAdapter.notifyItemMoved(0,1);
            }
        });


效果如下:


20200427003325817.gif


Item 点击


可以通过对整个Item文件的根布局添加一个点击事件来实现Item的点击


9f57cc797267231a4575c0371d24541b_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1d2VpbGl5aQ==,size_16,color_FFFFFF,t_70.png


dc3976e091934580cafc29a9c829d10d_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1d2VpbGl5aQ==,size_16,color_FFFFFF,t_70.png


效果如下:


20200427000557249.gif


相关文章
|
8月前
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
207 2
基于Android P,自定义Android开机动画的方法
|
6月前
|
Android开发 UED
Android 中加载 Gif 动画
【10月更文挑战第20天】加载 Gif 动画是 Android 开发中的一项重要技能。通过使用第三方库或自定义实现,可以方便地在应用中展示生动的 Gif 动画。在实际应用中,需要根据具体情况进行合理选择和优化,以确保用户体验和性能的平衡。可以通过不断的实践和探索,进一步掌握在 Android 中加载 Gif 动画的技巧和方法,为开发高质量的 Android 应用提供支持。
|
7月前
|
Android开发 开发者 索引
Android实战经验之如何使用DiffUtil提升RecyclerView的刷新性能
本文介绍如何使用 `DiffUtil` 实现 `RecyclerView` 数据集的高效更新,避免不必要的全局刷新,尤其适用于处理大量数据场景。通过定义 `DiffUtil.Callback`、计算差异并应用到适配器,可以显著提升性能。同时,文章还列举了常见错误及原因,帮助开发者避免陷阱。
563 9
|
7月前
|
存储 缓存 Android开发
Android RecyclerView 缓存机制深度解析与面试题
本文首发于公众号“AntDream”,详细解析了 `RecyclerView` 的缓存机制,包括多级缓存的原理与流程,并提供了常见面试题及答案。通过本文,你将深入了解 `RecyclerView` 的高性能秘诀,提升列表和网格的开发技能。
133 8
|
8月前
|
存储 Android开发 开发者
Android项目架构设计问题之定义RecyclerView的ViewHolder如何解决
Android项目架构设计问题之定义RecyclerView的ViewHolder如何解决
82 0
|
Android开发
Android自定义View,制作饼状图带动画效果
一个简单的自定义view饼状图,加入了动画效果
175 0
|
Java Android开发 Kotlin
Android 自定义加载动画Dialog弹窗
Android 自定义加载动画Dialog弹窗
387 0

热门文章

最新文章

下一篇
oss创建bucket