代码已经整理好,效果如下图:



首先:RecyclerViewGridViewHorizontalFragment.java

importandroid.content.Context;importandroid.os.Bundle;importandroid.support.annotation.Nullable;importandroid.support.v4.view.ViewPager;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.Button;importandroid.widget.GridView;importandroid.widget.RelativeLayout;importandroid.widget.TextView;importcom.haiersmart.smartfridgefirst.R;importcom.haiersmart.smartfridgefirst.constant.ConstantUtil;importcom.haiersmart.smartfridgefirst.domain.FragmentResult;importcom.haiersmart.smartfridgefirst.domain.ListViewLabOne;importcom.haiersmart.smartfridgefirst.domain.ListViewLabOne2;importcom.haiersmart.smartfridgefirst.domain.NetMessage;importcom.haiersmart.smartfridgefirst.domain.ShouyeLeft1Model;importcom.haiersmart.smartfridgefirst.domain.ShouyeLeft1ModelNew;importcom.haiersmart.smartfridgefirst.ui.adapter.MyViewPagerAdapterDemo;importcom.haiersmart.smartfridgefirst.ui.adapter.ShouyeLeft1AdapterDemo;importcom.haiersmart.smartfridgefirst.ui.base.BaseNetWorkFragment;importcom.haiersmart.smartfridgefirst.util.MyLogUtil;importcom.haiersmart.smartfridgefirst.util.ToastUtil;importjava.util.ArrayList;importjava.util.List;/***@function:*@description:*@history:1.Date:2015/12/2620:27*Author:jack_D*modification:*/publicclassRecyclerViewGridViewHorizontalFragmentextendsBaseNetWorkFragment{privateTextViewtv,tvback;privateButtontest_net_button;//MainPagerViewOne下一页标识符privateintpagerFlag;//TODOgeekprivateTextViewtv_Hello;//视图一titleprivateRelativeLayoutrl_Viewpager_LeftSlip;//左滑privateRelativeLayoutrl_add_button;//加号privateRelativeLayoutrl_del_button;//减号privateRelativeLayoutrl_Viewpager_RightSlip;//右滑privatestaticfinalfloatAPP_PAGE_SIZE=8.0f;privateMyViewPagerAdapterDemoadapter;privateShouyeLeft1AdapterDemoadapter2;privateArrayList<GridView>array;privateViewPagerviewPager;privateintexPos=0;//假数据//getallappsprivateintpageCount2=5;//服务器总页数privateList<ShouyeLeft1Model>apps12=ListViewLabOne.getmInstance().getmParent_model();//16privateList<ShouyeLeft1Model>apps3=ListViewLabOne2.getmInstance().getmParent_model2();//8@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);MyLogUtil.i(TAG,"-----onCreate()");}@Nullable@OverridepublicViewonCreateView(LayoutInflaterinflater,@NullableViewGroupcontainer,@NullableBundlesavedInstanceState){MyLogUtil.i(TAG,"-----onCreateView()");this.inflater=inflater;setContentView(R.layout.activity_recyclerview,container);//baseView=inflater.inflate(R.layout.activity_test_net,container,false);findviews();addlisteners();requestViewOne();if(getArguments()!=null){tv.setText(getArguments().getString(ConstantUtil.Bundle_INFO1));}else{tv.setText("null");}returnbaseView;}privatevoidfindviews(){test_net_button=(Button)findViewById(R.id.test_net_button);tv=(TextView)findViewById(R.id.test_net_tv);tvback=(TextView)findViewById(R.id.test_back_button);viewPager=(ViewPager)baseView.findViewById(R.id.viewpager_view_111);rl_Viewpager_LeftSlip=(RelativeLayout)baseView.findViewById(R.id.rl_Viewpager_LeftSlip);rl_Viewpager_RightSlip=(RelativeLayout)baseView.findViewById(R.id.rl_Viewpager_RightSlip);adapter2=newShouyeLeft1AdapterDemo(mContext);}privatevoidaddlisteners(){tv.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){Bundlebundle=newBundle();bundle.putString(ConstantUtil.Bundle_INFO1,"backStr");setResult(ConstantUtil.ResultCodeO1,bundle);backTo(OneFragment.class);}});test_net_button.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){Bundlebundle=newBundle();bundle.putString(ConstantUtil.Bundle_INFO1,"str2to3");startFragmentForResult(RecyclerViewGridViewHorizontalFragment.this,TestThreeFragment.class,bundle,ConstantUtil.RequestCodeO1,ConstantUtil.TAB_01);}});tvback.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){back();}});setViewPagerOneListener();}@OverridepublicvoidonFragmentResult(FragmentResultresult){super.onFragmentResult(result);tv.setText(result.toString());}@OverrideprotectedvoidnetworkCallBack(NetMessagemessage){}@OverridepublicvoidonStart(){MyLogUtil.i(TAG,"-----onStart()");super.onStart();}@OverridepublicvoidonDetach(){MyLogUtil.i(TAG,"-----onDetach()");super.onDetach();}@OverridepublicvoidonHiddenChanged(booleanhidden){MyLogUtil.i(TAG,"-----onHiddenChanged()");super.onHiddenChanged(hidden);}@OverridepublicvoidonResume(){MyLogUtil.i(TAG,"-----onResume()");super.onResume();}@OverridepublicvoidonPause(){MyLogUtil.i(TAG,"-----onPause()");super.onPause();}@OverridepublicvoidonActivityCreated(@NullableBundlesavedInstanceState){MyLogUtil.i(TAG,"-----onActivityCreated()");super.onActivityCreated(savedInstanceState);}@OverridepublicvoidonStop(){MyLogUtil.i(TAG,"-----onStop()");super.onStop();}@OverridepublicvoidonDestroy(){MyLogUtil.i(TAG,"-----onDestroy()");super.onDestroy();}@OverridepublicvoidonDestroyView(){MyLogUtil.i(TAG,"-----onDestroyView()");super.onDestroyView();}@OverridepublicvoidonAttach(Contextcontext){MyLogUtil.i(TAG,"-----onAttach()");super.onAttach(context);}/***ShouYeLeft1数据展示*/privatevoidrequestViewOne(){adapter=newMyViewPagerAdapterDemo(mContext);viewPager.setAdapter(adapter);//thetotalpagesfinalintPageCount=(int)Math.ceil(apps12.size()/APP_PAGE_SIZE);array=newArrayList<GridView>();for(inti=0;i<PageCount;i++){GridViewappPage=newGridView(mContext);ShouyeLeft1AdapterDemoadapter2=newShouyeLeft1AdapterDemo(mContext);if(i==0){List<ShouyeLeft1Model>apps1=apps12.subList(0,8);adapter2.setContacts(apps1,i);appPage.setAdapter(adapter2);appPage.setNumColumns(4);array.add(appPage);}if(i==1){List<ShouyeLeft1Model>apps2=apps12.subList(8,apps12.size());adapter2.setContacts(apps2,i);appPage.setAdapter(adapter2);appPage.setNumColumns(4);array.add(appPage);}}MyLogUtil.e("----array-------",array.size()+"");adapter.setContacts(array);adapter.notifyDataSetChanged();}privatevoidupdateViewpager(intposition,List<ShouyeLeft1Model>apps3){intPageCount=(int)Math.ceil(apps3.size()/APP_PAGE_SIZE);if(position>=1&&position<pageCount2-1){GridViewappPage=newGridView(mContext);adapter2.setContacts2(apps3,position+1);adapter2.notifyDataSetChanged();appPage.setAdapter(adapter2);appPage.setNumColumns(4);adapter.addConstacts(appPage);adapter.notifyDataSetChanged();ToastUtil.showToastLong(position+"");}else{//ToastUtil.showToastLong(position+","+"暂无数据");}}/***当viewPager滑动时,将popwindowdismiss*/privatevoidsetViewPagerOneListener(){if(null!=viewPager){viewPager.setOnPageChangeListener(newViewPager.OnPageChangeListener(){@OverridepublicvoidonPageScrolled(intposition,floatpositionOffset,intpositionOffsetPixels){//ToastUtil.showToastLong(position+"");}@OverridepublicvoidonPageSelected(intposition){if(position>0){rl_Viewpager_LeftSlip.setVisibility(View.VISIBLE);}else{rl_Viewpager_LeftSlip.setVisibility(View.INVISIBLE);}if(position<(pagerFlag-1)){rl_Viewpager_RightSlip.setVisibility(View.VISIBLE);}else{rl_Viewpager_RightSlip.setVisibility(View.INVISIBLE);}if(position>exPos){exPos=position;updateViewpager(position,apps3);}else{//ToastUtil.showToastLong("暂无数据");}}@OverridepublicvoidonPageScrollStateChanged(intstate){}});}rl_Viewpager_LeftSlip.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){viewPager.setCurrentItem(viewPager.getCurrentItem()-1);}});rl_Viewpager_RightSlip.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){viewPager.setCurrentItem(viewPager.getCurrentItem()+1);}});}}

然后MyViewPagerAdapterDemo:

packagecom.haiersmart.smartfridgefirst.ui.adapter;importandroid.content.Context;importandroid.support.v4.view.PagerAdapter;importandroid.support.v4.view.ViewPager;importandroid.view.View;importandroid.widget.GridView;importcom.haiersmart.smartfridgefirst.util.MyLogUtil;importjava.util.List;/***实现ViewPager页卡切换的适配器**@authorAdministrator*/publicclassMyViewPagerAdapterDemoextendsPagerAdapter{privateList<GridView>array;privateContextcontext;/***供外部调用(new)的方法**@paramcontext上下文*@paramarray添加的序列对象*/publicMyViewPagerAdapterDemo(Contextcontext){this.context=context;}publicvoidsetContacts(List<GridView>array){this.array=array;}publicvoidaddConstacts(List<GridView>array){this.array.addAll(array);}publicvoidaddConstacts(GridViewgridView){this.array.add(gridView);MyLogUtil.e("-----arraysssssss------",array.size()+"");}@OverridepublicintgetCount(){//TODOAuto-generatedmethodstubif(array==null)return0;returnarray.size();}@OverridepublicbooleanisViewFromObject(Viewarg0,Objectarg1){//TODOAuto-generatedmethodstubreturnarg0==arg1;}@OverridepublicObjectinstantiateItem(Viewarg0,intarg1){((ViewPager)arg0).addView(array.get(arg1));returnarray.get(arg1);}@OverridepublicvoiddestroyItem(Viewarg0,intarg1,Objectarg2){((ViewPager)arg0).removeView((View)arg2);}}

还有一个ShouyeLeft1AdapterDemo:

packagecom.haiersmart.smartfridgefirst.ui.adapter;importandroid.annotation.SuppressLint;importandroid.content.Context;importandroid.os.Handler;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.BaseAdapter;importandroid.widget.ImageView;importandroid.widget.PopupWindow;importandroid.widget.TextView;importcom.haiersmart.smartfridgefirst.R;importcom.haiersmart.smartfridgefirst.constant.FridgeApplication;importcom.haiersmart.smartfridgefirst.domain.ShouyeLeft1Model;importcom.haiersmart.smartfridgefirst.util.MyLogUtil;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;publicclassShouyeLeft1AdapterDemoextendsBaseAdapter{protectedLayoutInflaterinflater;protectedContextcontext;privateList<ShouyeLeft1Model>mratings;publicstaticfinalintAPP_PAGE_SIZE=8;//每一页装载数据的大小publicPopupWindowpop;privateViewview;TextViewfresh;TextViewexpirationDate;publicHandlerhandler=newHandler(){publicvoidhandleMessage(android.os.Messagemsg){if(null!=pop&&pop.isShowing()){pop.dismiss();}};};publicPopupWindowgetPopupWindow(){returnpop;}publicHandlergetHandler(){returnhandler;}publicShouyeLeft1AdapterDemo(Contextcontext){this.context=context;inflater=LayoutInflater.from(context);mratings=newArrayList<ShouyeLeft1Model>();initPopupWindow();}privatevoidinitPopupWindow(){view=inflater.inflate(R.layout.mainpager_tip,null);pop=newPopupWindow(view,ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);fresh=(TextView)view.findViewById(R.id.tv_Fresh);expirationDate=(TextView)view.findViewById(R.id.tv_ExpirationDate);pop.setOutsideTouchable(true);view.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){pop.dismiss();}});}publicvoidsetContacts(List<ShouyeLeft1Model>ratings,intpage){this.mratings=ratings;//根据当前页计算装载的应用,每页只装载16个//mratings.addAll(ratings);//inti=page*APP_PAGE_SIZE;//当前页的其实位置//intiEnd=i+APP_PAGE_SIZE;//所有数据的结束位置//while((i<ratings.size())&&(i<iEnd)){//mratings.add(ratings.get(i));//i++;//}MyLogUtil.e("------mratings-------",mratings.size()+"");}publicvoidsetContacts2(List<ShouyeLeft1Model>ratings,intpage){mratings=newArrayList<ShouyeLeft1Model>();this.mratings=ratings;//根据当前页计算装载的应用,每页只装载16个//inti=page*APP_PAGE_SIZE;//当前页的其实位置//intiEnd=i+APP_PAGE_SIZE;//所有数据的结束位置////while((i<ratings.size())&&(i<iEnd)){//MyLogUtil.e("------mratings22222-------",mratings.size()+"");//mratings.addAll(i,ratings);//mratings.add(ratings.get(i));//i++;//}//for(inti=0;i<APP_PAGE_SIZE;i++){//mratings.add(ratings.get(i));//}}publicvoidaddConstacts(List<ShouyeLeft1Model>ratings,intpage){this.mratings.addAll(ratings);}publicList<ShouyeLeft1Model>getMratings(){returnmratings;}@OverridepublicintgetCount(){returnmratings.size();}@OverridepublicObjectgetItem(intposition){returnmratings.get(position);}@OverridepubliclonggetItemId(intposition){returnposition;}privateclassViewHolder{privateImageViewivAppIcon;privateTextViewtvAppName;//}@SuppressLint("InflateParams")@OverridepublicViewgetView(finalintposition,ViewconvertView,ViewGroupparent){ViewHolderviewHolder=null;finalShouyeLeft1Modelratings=mratings.get(position);if(convertView==null){convertView=inflater.inflate(R.layout.app_item,null);viewHolder=newViewHolder();viewHolder.ivAppIcon=(ImageView)convertView.findViewById(R.id.ivAppIcon);viewHolder.tvAppName=(TextView)convertView.findViewById(R.id.tvAppName);convertView.setTag(viewHolder);}else{viewHolder=(ViewHolder)convertView.getTag();}try{FridgeApplication.getImageLoader().displayImage(ratings.getImgUrl(),viewHolder.ivAppIcon,FridgeApplication.getLoaderOptionsFace22());}catch(IOExceptione){e.printStackTrace();}viewHolder.tvAppName.setText(ratings.getTitle());viewHolder.ivAppIcon.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){////编辑部分//Intentintent=newIntent(context,AddressEditActivityBase.class);//intent.putExtra(ConstantUtil.INTENT_FROM,//AddressActivityBase.TAG);//intent.putExtra(ConstantUtil.INTENT_INFO1,ratings);//context.startActivity(intent);//if(null!=ratings&&position<mratings.size()){//showpop(v,ratings.getId(),ratings.getId());////mFragment.requestCookBookListFromFoodID(list.get(position).getFood_definition_id());//}else{//showpop(v);//}}});returnconvertView;}privatevoidshowpop(Viewv,intarg1,intarg2){fresh.setText((context.getString(R.string.fresh)+arg1)+"%");expirationDate.setText((context.getString(R.string.expiration_date))+arg2+"天");if(pop.isShowing()){handler.removeCallbacksAndMessages(null);pop.dismiss();showpop(v,arg1,arg2);}else{intoffx=((int)context.getResources().getDimension(R.dimen.x150)-110)/2;intoffy=-(int)(70+context.getResources().getDimension(R.dimen.y150));pop.showAsDropDown(v,offx,offy);handler.sendEmptyMessageDelayed(0,2000);}}privatevoidshowpop(Viewv){fresh.setText("大熊:");expirationDate.setText("没有更多食材");if(pop.isShowing()){handler.removeCallbacksAndMessages(null);pop.dismiss();showpop(v);}else{intoffx=((int)context.getResources().getDimension(R.dimen.x150)-110)/2;intoffy=-(int)(70+context.getResources().getDimension(R.dimen.y150));pop.showAsDropDown(v,offx,offy);handler.sendEmptyMessageDelayed(0,2000);}}}

假数据的Model:

packagecom.haiersmart.smartfridgefirst.domain;importjava.util.ArrayList;importjava.util.List;/***Createdbygeekon2016/2/26.*/publicclassListViewLabOne{///**//*//*///privatestaticfinallongserialVersionUID=1L;publicstaticListViewLabOnemInstance;privateList<ShouyeLeft1Model>mParent_model=newArrayList<ShouyeLeft1Model>();privateListViewLabOne(){mParent_model.add(newShouyeLeft1Model(1,"智能推荐1","智能推荐1",1,false));mParent_model.add(newShouyeLeft1Model(2,"生鲜水果2","生鲜水果2",1,false));mParent_model.add(newShouyeLeft1Model(3,"鸡鱼肉蛋3","鸡鱼肉蛋3",1,false));mParent_model.add(newShouyeLeft1Model(4,"休闲零食4","休闲零食4",1,false));mParent_model.add(newShouyeLeft1Model(5,"蛋糕甜点5","蛋糕甜点5",1,false));mParent_model.add(newShouyeLeft1Model(6,"乳制品6","乳制品6",1,false));mParent_model.add(newShouyeLeft1Model(7,"农场直达7","农场直达7",1,false));mParent_model.add(newShouyeLeft1Model(8,"有机8","有机8",1,false));mParent_model.add(newShouyeLeft1Model(1,"智能推荐9","智能推荐9",1,false));mParent_model.add(newShouyeLeft1Model(2,"生鲜水果10","生鲜水果10",1,false));mParent_model.add(newShouyeLeft1Model(3,"鸡鱼肉蛋11","鸡鱼肉蛋11",1,false));mParent_model.add(newShouyeLeft1Model(4,"休闲零食12","休闲零食12",1,false));mParent_model.add(newShouyeLeft1Model(5,"蛋糕甜点13","蛋糕甜点13",1,false));mParent_model.add(newShouyeLeft1Model(6,"乳制品14","乳制品14",1,false));mParent_model.add(newShouyeLeft1Model(7,"农场直达15","农场直达15",1,false));mParent_model.add(newShouyeLeft1Model(8,"有机16","有机16",1,false));}publicList<ShouyeLeft1Model>getmParent_model(){returnmParent_model;}publicstaticListViewLabOnegetmInstance(){if(mInstance==null){synchronized(ListViewLabOne.class){if(mInstance==null){mInstance=newListViewLabOne();}}}returnmInstance;}}

还有一个Model:

packagecom.haiersmart.smartfridgefirst.domain;importjava.util.ArrayList;importjava.util.List;/***Createdbygeekon2016/2/26.*/publicclassListViewLabOne2{///**//*//*///privatestaticfinallongserialVersionUID=1L;publicstaticListViewLabOne2mInstance;privateList<ShouyeLeft1Model>mParent_model=newArrayList<ShouyeLeft1Model>();privateListViewLabOne2(){mParent_model.add(newShouyeLeft1Model(1,"智能推荐1","智能推荐1",1,false));mParent_model.add(newShouyeLeft1Model(2,"生鲜水果2","生鲜水果2",1,false));mParent_model.add(newShouyeLeft1Model(3,"鸡鱼肉蛋3","鸡鱼肉蛋3",1,false));mParent_model.add(newShouyeLeft1Model(4,"休闲零食4","休闲零食4",1,false));mParent_model.add(newShouyeLeft1Model(5,"蛋糕甜点5","蛋糕甜点5",1,false));mParent_model.add(newShouyeLeft1Model(6,"乳制品6","乳制品6",1,false));mParent_model.add(newShouyeLeft1Model(7,"农场直达7","农场直达7",1,false));mParent_model.add(newShouyeLeft1Model(8,"有机8","有机8",1,false));}publicList<ShouyeLeft1Model>getmParent_model2(){returnmParent_model;}publicstaticListViewLabOne2getmInstance(){if(mInstance==null){synchronized(ListViewLabOne2.class){if(mInstance==null){mInstance=newListViewLabOne2();}}}returnmInstance;}}

减肥~健身~旅行~

更多相关文章

  1. 微软和Wistron再度联手,Android和Chrome OS又成鱼肉
  2. 微软和Wistron再度联手,Android和Chrome OS又成鱼肉
  3. Android(安卓)Studio第六期 - 横向GridView
  4. 想购一套生鲜配送管理系统,蔬果云和悦厚哪个更好用
  5. 快递100集成多家同城配送公司账号API接口参数字典
  6. 仿京东APP页眉,导航
  7. 微软和Wistron再度联手,Android和Chrome OS又成鱼肉
  8. Android Studio第六期 - 横向GridView

随机推荐

  1. memcache图形化管理工具MemAdmin
  2. 十分钟快速搭建 Wordpress 博客系统
  3. php和apache如何合作的
  4. php echo什么意思
  5. 如何下载php开源代码
  6. USDT PHP开发包OmniTool简介
  7. php中什么是魔术引号
  8. php如何设置日期
  9. php之日期时间操作一箩筐
  10. wampserver怎么下载