开始逐渐体会到ItemDecoration的美妙之处了~今天就让我用ItemDecoration来完成可推送浮动导航栏的效果吧。最终效果如下:具体实现步骤如下:根据我之前文章中提到的RecyclerView的基本使用,我们先来完成基本的recyclerView:第一步:在布局中写一个RecyclerView第二步:实例化recyclerView=(RecyclerView)findViewById(R.id.recyclerView);第三步:获取需要的数据(这里我们来一个比较现实的场景,去互联网请求数据)/***互联网请求需要的url*/publicStringurl="http://api.meituan.com/mmdb/movie/v2/list/rt/order/coming.json?ci=1&limit=12&token=&__vhost=api.maoyan.com&utm_campaign=AmovieBmovieCD-1&movieBundleVersion=6801&utm_source=xiaomi&utm_medium=android&utm_term=6.8.0&utm_content=868030022232255&dmodel&net=746MI%205&uuid=0894DE03C76F6045D55977B6D4E32B7F3C6AAB02F9CEA042987B380EC5687C43&lat=40.100673&lng=116.378619&__skck=6a375bce8c66a0dc293860dfa83833ef&__skts=1463704714271&__skua=7e01cf8dd30a179800a7a93979b430b2&__skno=1a0b4a9b-44ec-42fc-b110-ead68bcc2824&__skcy=sXcDKbGi20CGXQPPZvhCU3%2FkzdE%3D";//NetworkacquisitiondatagetDataFromNet();/***useokhttpUtils网络请求数据*/privatevoidgetDataFromNet(){OkHttpUtils.get().url(url).build().execute(newStringCallback(){@OverridepublicvoidonError(okhttp3.Callcall,Exceptione,intid){Log.e("TAG","Networkfailure"+e.getMessage());}@OverridepublicvoidonResponse(Stringresponse,intid){Log.e("TAG","Networksuccess="+response);//联网成功后使用fastjson解析processData(response);}});}/***使用fastjson进行解析**@paramjson*/privatevoidprocessData(Stringjson){//这里使用GsonFormat生成对应的bean类JSONObjectjsonObject=parseObject(json);Stringdata=jsonObject.getString("data");JSONObjectdataObj=JSON.parseObject(data);Stringcoming=dataObj.getString("coming");Listcomingslist=parseArray(coming,WaitMVBean.DataBean.ComingBean.class);//测试是否解析数据成功//StringstrTest=comingslist.get(0).getCat();//Log.e("TAG",strTest+"222");//解析数据成功,设置适配器-->}}第4步:之后解析数据成功,创建并设置适配器,并传递相关数据//解析数据成功,设置适配器MyRecyclerAdapteradapter=newMyRecyclerAdapter(mContext,comingslist);recyclerView.setAdapter(adapter);适配器:publicclassMyRecyclerAdapterextendsRecyclerView.Adapter{privatefinalListcomingslist;privatefinalContextmContext;privatefinalLayoutInflatermLayoutInflater;publicMyRecyclerAdapter(ContextmContext,Listcomingslist){this.mContext=mContext;this.comingslist=comingslist;mLayoutInflater=LayoutInflater.from(mContext);}@OverridepublicRecyclerView.ViewHolderonCreateViewHolder(ViewGroupparent,intviewType){returnnewMyViewHolder(mLayoutInflater.inflate(R.layout.date_item,null));}@OverridepublicvoidonBindViewHolder(RecyclerView.ViewHolderholder,intposition){MyViewHoldermyholder=(MyViewHolder)holder;myholder.setData(position);}@OverridepublicintgetItemCount(){returncomingslist.size();}classMyViewHolderextendsRecyclerView.ViewHolder{privateTextViewmv_name;privateTextViewmv_dec;privateTextViewmv_date;privateImageViewimageView;publicMyViewHolder(ViewitemView){super(itemView);mv_name=(TextView)itemView.findViewById(R.id.mv_name);mv_dec=(TextView)itemView.findViewById(R.id.mv_dec);mv_date=(TextView)itemView.findViewById(R.id.mv_date);imageView=(ImageView)itemView.findViewById(R.id.image);}publicvoidsetData(intposition){WaitMVBean.DataBean.ComingBeancoming=comingslist.get(position);Stringname=coming.getNm();mv_name.setText(name);Stringdate=coming.getShowInfo();mv_date.setText(date);Stringdec=coming.getScm();mv_dec.setText(dec);//注意:发送图片时,你不能是的,只是做一个字符串替换StringimagUrl=coming.getImg();StringnewImagUrl=imagUrl.replaceAll("w.h","50.80");//使用Glide加载图片Glide.with(mContext).load(newImagUrl).into(imageView);}}}项目布局:第5步:绝对不要别忘了!!!recycleView不仅要设置adapter还要设置layoutmanager,否则图片不会显示GridLayoutManagermanager=newGridLayoutManager(this,1);recyclerView.setLayoutManager(manager);这时候简单完成RecyclerView的效果如下:可以做以下事情Pushedfloatingnavigationbar:next