Android SmartRefreshLayout+RecyclerView滑动卡顿

822 阅读1分钟

中间经过很多实验,查找问题,太多了不说了,直接说结论吧。
问题1:RecyclerView的item有个很大的背景,因为需要带阴影,所以用的图片,也正因为用了图片,导致滑动很卡。
问题2:在RecyclerView的header,或者在SmartRefreshLayout和RecyclerView之间添加带有阴影的大图片作为背景,也会导致滑动很卡。
解决方法:阴影部分用shape自己画出来。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />
            <solid android:color="#0DCCCCCC" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />
            <solid android:color="#10CCCCCC" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />
            <solid android:color="#15CCCCCC" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />
            <solid android:color="#20CCCCCC" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />
            <solid android:color="#25CCCCCC" />
            <corners android:radius="20dp" />
        </shape>
    </item>
    <item>
        <shape>
            <solid android:color="#FFFFFF" />
            <corners android:radius="20dp" />
        </shape>
    </item>
</layer-list>

注:这个画阴影的shape也是当初看的网上的文章,自己微调后的结果,但是已经不记得了地址了,如果有人看到了可以跟我说,我在文章中加上链接。