Android Skeleton使用和阴影动画的说明

本文介绍了如何在RecyclerView中使用Skeleton框架实现平滑的加载动画,包括引入依赖、初始化和数据设置步骤。然而,存在一些问题需要注意:1)阴影效果的大小和颜色可能与预期不符,这与load布局的颜色和尺寸有关;2)当使用GridLayoutManager时, Skeleton可能会直接显示全部条目,而非预设的数量。解决这些问题需要调整阴影参数和设置正确的item数量。
摘要由CSDN通过智能技术生成

这个框架效果挺不错的,我在Recyclerview中使用,但是有些坑要说明下。
引用官方demo的图:
在这里插入图片描述

先说使用:
1.引入依赖

    implementation 'com.ethanhua:skeleton:1.1.2'//动画
    implementation 'io.supercharge:shimmerlayout:2.1.0'

2.直接在初始化recyclerview的时候将Skeleton注册进去

        RvRecentApp = findViewById(R.id.rv_recent_app);
        mRecentAdapter = new RecentappAdapter(this);
        mRvRecentApp.setLayoutManager(new GridLayoutManager(this, default_recent_count) {
            @Override
            public boolean canScrollVertically() {
                return false;
            }
        });
        skeletonScreen = Skeleton.bind(mRvRecentApp)
                .adapter(mRecentAdapter)
                .load(R.layout.item_skeleton_news)
                .count(5)
                .shimmer(true)
                .show();

3.获取到数据后再给recyclerview设置数据然后进行Skeleton的隐藏

                mRecentAdapter.setRecentAppData(list_expand);
                mRvRecentApp.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        skeletonScreen.hide();
                    }
                }, 100);

采用了Skeleton的话是不用手动调用setAdapter方法的,第二步的时候已经设置了。注意adapter里需要手动调用刷新。

public class RecentappAdapter extends RecyclerView.Adapter<RecentappAdapter.RecentHolder> {
···
    public void setRecentAppData(List<SearchEntity> list){
        this.mList = list;
        notifyDataSetChanged();
    }
···
}

那么问题在哪?

1.shimmer阴影大小和颜色
这个和.load布局布局有关,建议设置成android:background="@android:color/transparent"
当然也可以设置颜色值 但是如果你load的布局设置了其他颜色而不是透明色的话颜色叠加就不时你想要的效果了,阴影大小就是你的load布局的宽高
2.我用GridLayoutManager的时候本来是默认只显示五个,点了展开后才显示十个,但是实际上绑定了之后直接给我显示了十个,这个可以自己设置.count(5)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值