【问题标题】:Android refresh Recyclerview delayedAndroid 刷新 Recyclerview 延迟
【发布时间】:2015-06-01 21:41:13
【问题描述】:

我有一个带有 recyclerview 的简单布局。 在 onCreateView 方法中,我设置了 Recyclerview:

  @Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_overview, container, false);
    recyclerView = (RecyclerView) rootView.findViewById(R.id.rv_overview);
    list = new ArrayList<>();
    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recyclerView.setLayoutManager(layoutManager);

    list = getOverviewList(getActivity());
    adapter = new OverviewRecyclerAdapter(getActivity(), list);
    recyclerView.setAdapter(adapter);
    final Context context = getActivity();
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            list =getOverviewList(context);
            adapter.notifyDataSetChanged();
        }
    }, 1000);
    return rootView;
}

如您所见,Recyclerview 需要在创建视图后一秒钟刷新。我试图用一个处理程序来实现这一点。但是 Handler 中的代码不会刷新 Recyclerview。但显然应该。

【问题讨论】:

    标签: android android-recyclerview android-handler


    【解决方案1】:

    但显然应该这样做。

    不应该,因为您没有为适配器设置新数据

    list =getOverviewList(context);

    您只是设置变量新列表,但它不会更改适配器中的旧列表

    编辑:

    试试这样的

    list.clear();
    list.addAll(getOverviewList(context));
    

    【讨论】:

      【解决方案2】:

      如果您确定要修改第二次调用 getOverViewList(Context ctx) 时获得的列表,那么看起来不错的代码肯定可以工作,否则很难判断它是否已刷新,因为它会再次加载相同的数据

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-11
        • 1970-01-01
        • 2023-03-04
        相关资源
        最近更新 更多