【问题标题】:ViewPager not called recyclerViewAdapter againViewPager 不再调用 recyclerViewAdapter
【发布时间】: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


【解决方案1】:

将 OnResume 更改为 OnStart 覆盖方法和 在适配器代码中,尝试以下更改..

public void update(ArrayList<Person> data) {
mData.clear();
mData.addAll(data)
notifyDataSetChanged();
}

【讨论】:

猜你喜欢
  • 2020-06-21
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 2018-05-30
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多