【发布时间】:2017-11-28 05:35:51
【问题描述】:
我有主片段,在主片段里面我有ViewPager。此视图分页器加载了 2 个片段,每个分页器内部都有一个 Recycler View 和 Recycler Viewadapter 的实现:
public void onResume() {
super.onResume();
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerAdapter = new UsersRecyclerAdapter(getContext());
suserList = Collections.emptyList();
recyclerView.setAdapter(recyclerAdapter);
recyclerAdapter.setItems(paginator.generatePage(currentPage));
此 RecyclerView 显示来自服务的内容列表。我的问题是setItems 方法第一次起作用并且列表显示在RecyclerView 中,但是当paginator.generatePage(currentPage) 生成新的数据列表时,我的RecyclerView 没有显示新数据?
这是我的 Recycler Viewadapter 中的方法:
public void setItems(List<Suser> items) {
if (items == null)
throw new IllegalArgumentException("Cannot set `null` item to the Recycler adapter");
susers.clear();
susers.addAll(items);
notifyDataSetChanged();
}
似乎我在 ViewPager 中加载的片段没有再次刷新,并且这个recyclerAdapter.setItems(paginator.generatePage(currentPage)); 没有再次调用。
你有什么建议?
******************编辑******************
我已将主 Fragment 更改为 Activity。然后我在我的 Activity 中创建了一个回调,最后,我实现了这个回调到 Fragment 并调用了notifyDataSetChanged,但 Recycler View 的列表没有改变??
@Override
public void onLoad() {
recyclerAdapter.notifyDataSetChanged();
}
Recycler View 一开始还是代表一页!!
【问题讨论】:
-
如果您在 onstart 覆盖中使用您的方法,它将保持刷新
-
@HemalHerath.no 我没有使用任何方法。我怎么用?
-
你能告诉我为什么你在onResume方法中设置recyclerview
-
没有理由。但我正在使用事件总线,我在 onCreateView 中注册了事件总线。 @HemalHerath
-
@HemalHerath 请告诉我刷新方法。
标签: android android-recyclerview android-viewpager