为了账号安全,请及时绑定邮箱和手机立即绑定

如何重新加载从线程加载数据的recycleview

如何重新加载从线程加载数据的recycleview

慕田峪4524236 2022-05-25 16:29:12
在我的 android 应用程序中,我有recyclerView一个fragment. 因此,recyclerView运营商会提供有关已安装应用程序的详细信息。我正在使用 acustomAdapter并使用线程将数据加载到 ,recyclerView因为如果不是 UI 挂起。我正在使用 swipetoReload 控件。我可以通过重新启动我使用的线程来重新加载 recylerView。但随后recyclerView消失并立即再次出现。我在这里做错了吗?有没有办法避免这种情况。或者有没有更好的方法可以在没有线程或类似的东西的情况下做到这一点。这是我的代码。片段:Thread loadApps = new Thread() {            @Override            public void run() {                swipeapplist.post(new Runnable() {                    @Override                    public void run() {                        if (!swipeapplist.isRefreshing()) {                            swipeapplist.setRefreshing(true);                        }                    }                });                appAdapter = new AppAdapter(context, getInstalledApps());                final LinearLayoutManager layoutManager = new LinearLayoutManager(context);                recyclerInstalledApps.post(new Runnable() {                    @Override                    public void run() {                        recyclerInstalledApps.setLayoutManager(layoutManager);                        LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation(context, R.anim.recycler_layout_animation);                        recyclerInstalledApps.setLayoutAnimation(controller);                        recyclerInstalledApps.scheduleLayoutAnimation();                        recyclerInstalledApps.setAdapter(appAdapter);                    }                });                swipeapplist.post(new Runnable() {                    @Override                    public void run() {                        if (swipeapplist.isRefreshing()) {                            swipeapplist.setRefreshing(false);                        }                    }                });            }        };        loadApps.start();
查看完整描述

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

尝试使用 notifyDataSetChanged


     appAdapter = new AppAdapter(context, getInstalledApps());

            final LinearLayoutManager layoutManager = new LinearLayoutManager(context);

            recyclerInstalledApps.post(new Runnable() {

                @Override

                public void run() {

                    recyclerInstalledApps.setLayoutManager(layoutManager);

                    LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation(context, R.anim.recycler_layout_animation);


                    recyclerInstalledApps.setLayoutAnimation(controller);

                    recyclerInstalledApps.scheduleLayoutAnimation();

                    recyclerInstalledApps.setAdapter(appAdapter);

                }

            });

   appAdapter.notifyDataSetChanged();


查看完整回答
反对 回复 2022-05-25
  • 1 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信