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

8032

被折叠的 条评论
为什么被折叠?



