我有一个RecyclerView
,其中显示了一个项目列表。
如果没有要显示的项目,则recyclerview显示一个项目,其中有一个 具体视图(告诉用户没有项目,而是白色 屏幕)。
在 HistoryFragment 内:
private void initRecyclerView(Boolean isNoResult){
HistoryRecyclerViewAdapter adapter = new HistoryRecyclerViewAdapter(mContext, mRecords, **isNoResult**);
mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
mRecyclerView.setAdapter(adapter);
}
在HistoryRecyclerViewAdapter内:
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view;
if(**isEmpty**) {
**view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_listitem_prhistory_empty, parent, false);**
} else {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_listitem_prhistory, parent, false);
}
ViewHolder holder = new ViewHolder(view);
return holder;
}
因此,如果我们单击它们,则可以一一删除。
当dataSet为null时,我想将isEmpty
设置为true
并刷新RecyclerView
。
我已经知道在哪里调用该方法,但是我真的不知道该怎么做? (即,用RecyclerView
刷新isEmpty = true
,以便显示可以向用户说明不再有记录的单元格。)
答案 0 :(得分:0)
不要给不同的视图持有人充气,因为当适配器没有任何物品时,其中的任何一个都不会被充气。相反,可以将import CookieConsent from "react-cookie-consent";
<CookieConsent
enableDeclineButton
onAccept={() => {alert("yay!")}}
onDecline={() => {alert("nay!")}}
>
This website uses cookies to enhance the user experience.
</CookieConsent>
和“无数据” RecyclerView
一起包装到Fragment
中,然后在ViewFlipper
时将其切换到Fragment
适配器没有任何物品。
答案 1 :(得分:0)
最佳做法是在RecyclerView之外使用空视图,但如果您想做自己想做的事情:
1.in onCreateViewHolder仅会膨胀一种具有空视图和项目视图的布局
摘要:
onBind:
模型为空:空视图可见
模型不为空:项目视图可见
答案 2 :(得分:0)
在删除此类内容后,使用界面刷新RecyclerView
public interface RefreshRecyclerView {
public void Refresh();
}
然后在活动或片段中实现接口
Fragment implements RefreshRecyclerView
您将拥有这样的覆盖方法
@Override
public void Refresh() {
// set adapter again here
}
然后将接口传递给适配器
RefreshRecyclerView refresh = (RefreshRecyclerView) this;
yourRecycler.setadapter(refresh);
最后,当用户单击适配器时,使用此
refresh. Refresh();