recyclerview更新期间所有功能都被暂停

问题描述 投票:0回答:1

我需要将gridlayout应用于recyclerview并在应用程序的早期绘制1600个项目。然后,我使用scrollby滚动到所需的位置。但是它不会滚动。由于应用程序在notifyDataSetChanged运行时冻结当这些物品出现在回收站视图中时,停止释放。

执行顺序

-添加项目-notifyDataSetChanged-滚动运动

创建测试按钮后更新完成后单击此按钮将使滚动运行。

在runOnUiThread中运行notifyDataSetChanged还会冻结该应用一段时间。是什么原因?

        new Thread(new Runnable() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        adapter.notifyDataSetChanged();
                        mBinding.loading.setVisibility(View.GONE);
                        mBinding.horizontalScrollView.scrollBy(((int)((51*movey)*destiny)),0);
                        mBinding.recyclerView.scrollBy(0,((int)((51*movex)*destiny)));
                    }
                });
            }
        }).start();
android android-recyclerview notifydatasetchanged
1个回答
0
投票

停止可能是大量使用cpu和gpu的结果

作为建议,您可以使用分页显示每个请求少量项目。

© www.soinside.com 2019 - 2024. All rights reserved.