关于brvah的setEmptyView功能无法显示问题

在使用BRVAH(BaseRecyclerViewAdapterHelper)时遇到setEmptyView无法显示的困扰,经测试发现,当adapter重写了getItemCount和getItemViewType方法后,setEmptyView方法失效。解决方法是移除这两个方法的重写,或者在初始化adapter时设置useEmptyView,并根据数据情况动态调整。文中提到网友的建议,即首次加载时根据数据状态决定useEmptyView的值,以控制emptyView的显示。
摘要由CSDN通过智能技术生成

首先先描述下我所遇到的问题
1.在adapter里面实现设置空view的时候,list先有数据再清空setnewdata为null的时候就可以显示出来,但是这种情况就没意义了

2.nationAdapter.isUseEmpty(true);添加这个设置依然无效

3.nationAdapter.setEmptyView(LayoutInflater.from(this).inflate(R.layout.empty_build_list, rl_top, false));这一行代码放在setadapter方法前后都无效

经过多重测试修改,最后发现当你的adapter里面重写getItemCount方法和getItemViewType的时候,这个setEmptyView方法则无效,需要去掉这个

 附语:(网友)

一般我们在初始化adapter时就可以设置好emptyview。如果你要的效果是首次进去不展示emptyview(首次接口没调还没数据)就加个设置useeEmptyview(false),然后在接口返回时,立马在设置useEmptyview(true)。当然,如果首次你要直接展示emptyView,那就直接初始化adapter的地方设置true就可以了,接口失败也要设置true

也感谢群里的网友解惑和协助

接下来放我的代码

activity里面

   public void showRcy() {
        nationList = new ArrayList<>();
//        for (int i = 0; i < nation.length; i++) {
//           
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
BRVAH 是一个强大的RecyclerView适配器库,它可以实现许多复杂的功能,包括列表无限循环滚动和item可点击。下面是实现这两个功能的步骤: 1. 列表无限循环滚动 BRVAH库提供了一个BannerLayoutHelper类,可以用来实现列表的无限循环滚动,具体步骤如下: (1)在适配器中重写getItemCount()方法,将其返回一个很大的数,比如Integer.MAX_VALUE,这样就可以实现列表的无限循环滚动。 (2)在适配器中重写getItemViewType()方法,根据不同的位置返回不同的viewType,比如第一个位置返回BANNER_VIEW_TYPE,其他位置返回NORMAL_VIEW_TYPE。 (3)在适配器中实现onCreateViewHolder()方法,根据不同的viewType返回不同的ViewHolder,比如BANNER_VIEW_TYPE返回BannerViewHolder,NORMAL_VIEW_TYPE返回NormalViewHolder。 (4)在BannerViewHolder中初始化BannerLayoutHelper,并将其绑定到RecyclerView上。 (5)在NormalViewHolder中将数据绑定到itemView上。 2. item可点击 BRVAH库的ViewHolder已经实现了点击事件的处理,只需要在ViewHolder中实现OnItemClickListener接口并重写onItemClick()方法即可。具体步骤如下: (1)在ViewHolder中实现OnItemClickListener接口。 (2)在ViewHolder的构造方法中将OnItemClickListener传递进来,并保存到类成员变量中。 (3)在itemViewsetOnClickListener()方法中调用OnItemClickListener的onItemClick()方法。 示例代码如下: ```java public class NormalViewHolder extends BaseViewHolder<Data> implements View.OnClickListener { private OnItemClickListener mOnItemClickListener; public NormalViewHolder(View itemView, OnItemClickListener onItemClickListener) { super(itemView); mOnItemClickListener = onItemClickListener; itemView.setOnClickListener(this); } @Override public void onClick(View v) { if (mOnItemClickListener != null) { mOnItemClickListener.onItemClick(getAdapterPosition()); } } @Override public void setData(Data data) { // 将数据绑定到itemView上 } } ``` 注意:以上代码只是示例,具体实现可能会有所不同,需要根据实际情况进行调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值