最近学到一个很简单的添加头部方法,列表和网格都可以,瀑布流就不知道了,这个仅做参考。
新建一个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(); } } }); }//请求成功