1. 效果
最近碰到这种类似需求,然后做出如图所示的效果。
源代码地址:github ,如果对你有帮助希望给个star。
2. 干货
- 给RecyclerView添加header,这里我使用的是这位大佬的库,添加header ,内容有点多, 但是我们如果要用,就是其中一部分就可以了,等下见代码。
- 当图片在顶部时,会将图片沉浸到状态栏,用到这位大佬的库,沉浸状态栏工具 ,封装的很好,原理也说的很清楚,也不大,其实将网上的沉浸状态栏方法进行了总结。
- 使图片轮播的一个类,ScheduledExecutorService,他可以定时周期执行指定任务.
a.布局代码很简单,就是个recyclerview,见代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyView"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
b. 然后获取数据,包括两部分,一个是图片资源数据,我这里是将图片资源放在项目中了,真正项目中,应该不是,会做成接口,但是这里就这样做吧,将资源id放在一个数组中。还有就是列表数据,这里我直接是一个string集合,见代码。
private void initDatas() {
imgResIds = new int[]{R.mipmap.a1,R.mipmap.a2,R.mipmap.a3};
for(int i=0;i<40;i++){
stringLists.add("德德德玛西亚~~"+i);
}
}
c.然后我们在setContent()后面调用设