V-layout 卡顿消除

版权声明:本文为博主原创文章,转载请声明出处 https://blog.csdn.net/qq_16666847/article/details/79137413

电商布局总会是千奇百怪的,But ,V-layout 开源意味着,这些都不是难事

今天产品给了一份首页布局,看起来很麻烦,然后就想到了V-Layout
但是在使用之后发现一个问题:

 VirtualLayoutManager manager = new VirtualLayoutManager(getContext());
        mRecyclerView.setLayoutManager(manager);
        RecyclerView.RecycledViewPool pool = new RecyclerView.RecycledViewPool();
        pool.setMaxRecycledViews(0, 10);
        mRecyclerView.setRecycledViewPool(pool);
        DelegateAdapter delegateAdapter = new DelegateAdapter(manager, true);
        mRecyclerView.setAdapter(delegateAdapter);
        List<DelegateAdapter.Adapter> adapters = new LinkedList<>();
        adapters.add(new VLayoutAdapter(getContext(), new LinearLayoutHelper(), 1));
        adapters.add(new VLayoutAdapter(getContext(), new GridLayoutHelper(2), 2));

如上代码是没有问题的,但是如果你将这两句代码替换一下:

 adapters.add(new VLayoutAdapter1(getContext(), new LinearLayoutHelper(), 1));
 adapters.add(new VLayoutAdapter2(getContext(), new GridLayoutHelper(2), 2));

替换为如上代码,也就是采用两个不同的Adapter ,添加到DelegateAdapter中,这就会产生卡顿
看样子只能使用同一个Adapter ,然后进行ItemType 进行区分布局效果

但是但是。。。。可以通过继承的方法,可以解决不同布局的问题

猜你喜欢

转载自blog.csdn.net/qq_16666847/article/details/79137413