RecyclerView添加头部

最近学到一个很简单的添加头部方法,列表和网格都可以,瀑布流就不知道了,这个仅做参考。

新建一个head_item,里面添加头部布局,样式随便,这里我只是添加一个图片,比较方便

<ImageView
    android:scaleType="centerCrop"
    android:src="@mipmap/ic_launcher"
    android:layout_width="500dp"
    android:layout_height="250dp" />

添加两个依赖

compile 'com.zhy:base-adapter:3.0.3'
compile 'com.zhy:base-rvadapter:3.0.3'

在MainActivity类中添加代码,我这个有切换布局的功能,所以是直接添加进去,试了试效果,Grid布局也可以,不会产生位置错乱的现象

 //按钮的点击事件,点击切换布局
    main_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                boolean isTrue = con.getBoolean("isTrue", true);
                if(isTrue){
                    main_rv = (RecyclerView) findViewById(R.id.main_rv);
                    LinearLayoutManager manager = new LinearLayoutManager(MainActivity.this);
                    main_rv.setLayoutManager(manager);
                    myListAdapter = new MyListAdapter(MainActivity.this, data2);
                    main_rv.setAdapter(myListAdapter);

                    //添加头部
                    HeaderAndFooterWrapper myHeaderAndFooterWrapper = new HeaderAndFooterWrapper(myListAdapter);

                    View view2 = View.inflate(MainActivity.this,R.layout.head_item,null);
                    myHeaderAndFooterWrapper.addHeaderView(view2);
                    main_rv.setAdapter(myHeaderAndFooterWrapper);
                    myHeaderAndFooterWrapper.notifyDataSetChanged();

                    //不要忘记提交
                    con.edit().putBoolean("isTrue",false).commit();


                }else{
                    main_rv = (RecyclerView) findViewById(R.id.main_rv);
                    GridLayoutManager manager = new GridLayoutManager(MainActivity.this,2);
                    main_rv.setLayoutManager(manager);
                    myGridAdapter = new MyGridAdapter(MainActivity.this, data2);
                    main_rv.setAdapter(myGridAdapter);

                    //添加头部
                    HeaderAndFooterWrapper myHeaderAndFooterWrapper = new HeaderAndFooterWrapper(myGridAdapter);

                    View view3 = View.inflate(MainActivity.this,R.layout.head_item,null);
                    myHeaderAndFooterWrapper.addHeaderView(view3);
                    main_rv.setAdapter(myHeaderAndFooterWrapper);
                    myHeaderAndFooterWrapper.notifyDataSetChanged();

                    //不要忘记提交
                    con.edit().putBoolean("isTrue",true).commit();
                }
            }
        });

}//请求成功

猜你喜欢

转载自blog.csdn.net/color_0716/article/details/78340915