1. 首先重写一个RecyclerView类
package com.onepilltest.others;import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;public class MyRecyclerView extends RecyclerView {private View emptyView;private static final String TAG = "EmptyRecyclerView";//数据监听者final private AdapterDataObserver adapterDataObserver = new AdapterDataObserver() {@Overridepublic void onChanged() {checkIfEmpty();}@Overridepublic void onItemRangeInserted(int positionStart, int itemCount) {Log.i(TAG, "onItemRangeInserted" + itemCount);checkIfEmpty();}@Overridepublic void onItemRangeRemoved(int positionStart, int itemCount) {checkIfEmpty();}};private void checkIfEmpty() {if (emptyView != null && getAdapter() != null) {final boolean emptyViewVisible =getAdapter().getItemCount() == 0;emptyView.setVisibility(emptyViewVisible ? VISIBLE : GONE);setVisibility(emptyViewVisible ? GONE : VISIBLE);}}@Overridepublic void setAdapter(@Nullable Adapter adapter) {final Adapter oldAdapter = getAdapter();if (oldAdapter != null) {oldAdapter.unregisterAdapterDataObserver(adapterDataObserver);}super.setAdapter(adapter);if (adapter != null) {adapter.registerAdapterDataObserver(adapterDataObserver);}checkIfEmpty();}//设置没有内容时,提示用户的空布局public void setEmptyView(View emptyView) {this.emptyView = emptyView;checkIfEmpty();}public MyRecyclerView(@NonNull Context context) {super(context);}public MyRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs) {super(context, attrs);}public MyRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}
}
  1. 然后在activity中添加一个ImageView作为数据为空时显示的图片
<!--Empty提示图--><ImageViewandroid:id="@+id/empty_iv"android:layout_margin="20dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="centerCrop"android:contentDescription="@null"android:src="@drawable/empty"android:layout_centerInParent="true" />
  1. 最后添加下面的代码即可

    1. 找到相应的ImageView
    2. 调用setEmptyView方法
recyclerView.setEmptyView(mEmptyView);
  1. 显示

有数据:

数据为空:

关于RecyclerView(二)设置EmptyView相关推荐

  1. android: ListView设置emptyView 误区

    使用ListVIew 来设置EmptyView的时候须注意: ListView listview = (ListView) findViewById(R.id.list);View emptyView ...

  2. 求助帖:android开发初期:为什么我在活动二设置的singInstance模式跑到活动三去了???

    求android开发的高手帮我看看这个问题吧: <activity android:name=".SecondActivity"             android:la ...

  3. ListView设置EmptyView之后不显示

    在代码里简单设置里一下emptyView后发现根本不显示,代码如下: TextView tv= new TextView(this); tv.setText("this is a empty ...

  4. DHTMLX 前端框架 建立你的一个应用程序教程(二)--设置布局

    Layout控件的演示 Dhtmlx有很多的组建来组织网页的建设, 这篇主要介绍dhtmlxLayout . 下面图片中 布局将各个组件(1.Menu 2.Toolbar 3.Grid 4.Form ...

  5. mysql 命令行 设置同步_MySQL同步(二) 设置同步

    File 字段显示了二进制日志文件名,Position 字段显示了日志偏移位置.在这个例子中,日志文件是 mysql-bin.003,偏移位置是 73.记下这些值,在后面设置slave的时候就需要用到 ...

  6. ActiViz学习点滴(二)——设置背景色(纯色+渐变色)

    新建Winform工程,我使用的库是ActiViz 5.8.0.607 X64D,ActiViz库是没有源代码的,一共57个文件,除一个XML注释文档外,其他的文件都要复制到项目目录下,添加引用的时候 ...

  7. android RecyclerView 频繁设置数据闪退问题

    最近项目中一个播放的列表,有上下切换功能.测试频繁切换更换刷新数据时,报出以下错误: java.lang.IllegalArgumentException Scrapped or attached v ...

  8. (二)设置hexo支持mermaid

    欢迎访问个人网络日志

  9. 【RecyclerView】 十二、RecyclerView 数据更新 ( 修改单条数据 | 批量修改数据 )

    文章目录 一.修改单条数据 二.批量修改数据 三.完整代码示例 四.RecyclerView 相关资料 一.修改单条数据 修改单条数据 : 调用 RecyclerView.Adapter 的 void ...

最新文章

  1. IntelliJ IDEA for Mac在MacOS模式下的替换快捷键(Replace Shortcut)
  2. python flask 通过ajax向后台传递数组参数
  3. Notepad++ 6.0 发布,优化了大文件加载性能
  4. Java练习02 打印三角形
  5. SqlServer2012自增主键跳跃增长的问题解决方案
  6. 论文|Airbnb Embedding的实践和思考
  7. mysql的半同步复制
  8. resizableImageWithCapInsets:方法的探析 (转载笔记)
  9. STL标准模板库操作 --- map
  10. 服务器支持raid2,服务器做RAID,如何选择RAID?
  11. python翻转课堂_翻转课堂
  12. Pycharm提示“typo:in word“的意思
  13. 当Myeclipse或者Eclipse出现launching client
  14. 语料标注平台BRAT安装指导
  15. linux下分区ntfs,简易教程:Linux下NTFS分区的写操作
  16. glog安装配置及使用
  17. XMLhttpRequest 请求 XML,JSON ,POJO 数据
  18. AI正在模仿人类大脑!2021年10篇顶会论文:大脑也在「无监督」学习
  19. 英语基础句型结构------起源
  20. h3c linux静态链路聚合,H3C 链路聚合配置

热门文章

  1. eplan图纸怎么发给别人_手机拍的照片怎么打包发给别人
  2. 现在学SEO还有用吗;还能用到SEO吗;
  3. 基于SDN的环路通信
  4. win10下安装mysql5.6 zip形式步骤
  5. 如何聊才能突出自己软实力,打动面试官
  6. Ethernet、VLAN、QinQ
  7. eclipse-阶段五- 在[vo.BookMessageData]类型bean中找不到任何有关属性[Total]的信息
  8. mysql 的 null值_MySQL NULL值
  9. C++malloc,calloc,realloc,free函数
  10. PHP 可变函数经典用法