Android 最流行的吸顶效果的实现及代码

开始逐渐领略到的美~
今天让我 使用来完成可推动的悬浮导航栏的效果,最终实现的效果如下图:

Android 最流行的吸顶效果的实现及代码

文章插图
具体实现步骤如下:
根据我前面的文章所讲的的基本使用,我们先来完成基本的:
第一步:布局里写一个
第二步:实例化
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
第三步:获取所需的数据 (这里我们来个真实点的情景,去联网请求数据)
/** * 联网请求所需的url */public String url="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=868030022327462&net=255&dModel=MI%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";//联网获取数据getDataFromNet();/** * 使用okhttpUtils进行联网请求数据 */private void getDataFromNet() {OkHttpUtils.get().url(url).build().execute(new StringCallback() {@Overridepublic void onError(okhttp3.Call call, Exception e, int id) {Log.e("TAG", "联网失败" + e.getMessage());}@Overridepublic void onResponse(String response, int id) {Log.e("TAG", "联网成功==" + response);//联网成功后使用fastjson解析processData(response);}});}/** * 使用fastjson进行解析 * * @param json */private void processData(String json) {//这里使用GsonFormat生成对应的bean类JSONObject jsonObject = parseObject(json);String data = http://www.kingceram.com/post/jsonObject.getString("data");JSONObject dataObj = JSON.parseObject(data);String coming = dataObj.getString("coming");List comingslist = parseArray(coming, WaitMVBean.DataBean.ComingBean.class);//测试是否解析数据成功//String strTest = comingslist.get(0).getCat();//Log.e("TAG", strTest + "222");//解析数据成功,设置适配器-->}}
第四步:解析数据成功后,创建并设置适配器,并传递相关数据
//解析数据成功,设置适配器MyRecyclerAdapter adapter = new MyRecyclerAdapter( mContext,comingslist);recyclerView.setAdapter(adapter);
适配器:
public class MyRecyclerAdapter extends RecyclerView.Adapter {private final List comingslist;private final Context mContext;private final LayoutInflater mLayoutInflater;public MyRecyclerAdapter(Context mContext, List comingslist) {this.mContext = mContext;this.comingslist = comingslist;mLayoutInflater = LayoutInflater.from(mContext);}@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {return new MyViewHolder(mLayoutInflater.inflate(R.layout.date_item, null));}@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {MyViewHolder myholder = (MyViewHolder) holder;myholder.setData(position);}@Overridepublic int getItemCount() {return comingslist.size();}class MyViewHolder extends RecyclerView.ViewHolder {private TextView mv_name;private TextView mv_dec;private TextView mv_date;private ImageView imageView;public MyViewHolder(View itemView) {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);}public void setData(int position) {WaitMVBean.DataBean.ComingBean coming = comingslist.get(position);String name = coming.getNm();mv_name.setText(name);String date = coming.getShowInfo();mv_date.setText(date);String dec = coming.getScm();mv_dec.setText(dec);//注:当你发下图片无法打开是,做个字符串替换即可String imagUrl = coming.getImg();String newImagUrl = imagUrl.replaceAll("w.h", "50.80");//使用Glide加载图片Glide.with(mContext).load(newImagUrl).into(imageView);}}}