扫码关注官方订阅号
网上这些资料好像比较少,有的我也不太懂,还请大神们指点一个简单易懂的。
ringa_lee
设置一个Recyclerview的平级view,平时把它GONE掉,recyclerview的item为0时把它visible出来不久好了么
给楼主之前写的代码,将RecycleView 重写成如下:
public class RecyclerViewEmptySupport extends RecyclerView { private View emptyView; final private AdapterDataObserver observer = new AdapterDataObserver() { @Override public void onChanged() { checkIfEmpty(); } @Override public void onItemRangeInserted(int positionStart, int itemCount) { checkIfEmpty(); } @Override public void onItemRangeRemoved(int positionStart, int itemCount) { checkIfEmpty(); } }; public RecyclerViewEmptySupport(Context context) { super(context); } public RecyclerViewEmptySupport(Context context, AttributeSet attrs) { super(context, attrs); } public RecyclerViewEmptySupport(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void setAdapter(Adapter adapter) { final Adapter oldAdapter = getAdapter(); if (oldAdapter != null) { oldAdapter.unregisterAdapterDataObserver(observer); } super.setAdapter(adapter); if (adapter != null) { adapter.registerAdapterDataObserver(observer); } checkIfEmpty(); } public void setEmptyView(View emptyView) { this.emptyView = emptyView; checkIfEmpty(); } void checkIfEmpty() { if (emptyView != null && getAdapter() != null) { final boolean emptyViewVisible = getAdapter().getItemCount() == 0; emptyView.setVisibility(emptyViewVisible ? VISIBLE : GONE); setVisibility(emptyViewVisible ? GONE : VISIBLE); } } }
外部调用的时候执行mRecyclerView.setEmptyView(mEmptyView);即可。
mRecyclerView.setEmptyView(mEmptyView);
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
设置一个Recyclerview的平级view,平时把它GONE掉,recyclerview的item为0时把它visible出来不久好了么
给楼主之前写的代码,将RecycleView 重写成如下:
外部调用的时候执行
mRecyclerView.setEmptyView(mEmptyView);即可。