
上图先:
采用3个布局文件的形式设置滑动页面
xml布局:
1 <androID.support.v4.vIEw.VIEwPager 2 androID:ID="@+ID/vp_robot_main" 3 androID:layout_wIDth="match_parent" 4 androID:layout_height="236dp"> 5 6 </androID.support.v4.vIEw.VIEwPager> 7 8 <!--小圆点--> 9 <linearLayout10 androID:ID="@+ID/vIEwGroup"11 androID:layout_wIDth="match_parent"12 androID:layout_height="33dp"13 androID:layout_alignParentBottom="true"14 androID:gravity="center"15 androID:orIEntation="vertical">16 17 <linearLayout18 androID:layout_wIDth="wrap_content"19 androID:layout_height="wrap_content"20 androID:layout_margintop="3dip"21 androID:orIEntation="horizontal">22 23 24 <VIEw25 androID:ID="@+ID/dot_1"26 androID:layout_wIDth="10dp"27 androID:layout_height="10dp"28 androID:layout_marginleft="4dip"29 androID:layout_marginRight="4dip"30 androID:background="@drawable/dot_normal" />31 32 <VIEw33 androID:ID="@+ID/dot_2"34 androID:layout_wIDth="10dp"35 androID:layout_height="10dp"36 androID:layout_marginleft="4dip"37 androID:layout_marginRight="4dip"38 androID:background="@drawable/dot_normal" >39 40 </VIEw>41 42 <VIEw43 androID:ID="@+ID/dot_3"44 androID:layout_wIDth="10dp"45 androID:layout_height="10dp"46 androID:layout_marginleft="4dip"47 androID:layout_marginRight="4dip"48 androID:background="@drawable/dot_normal" />49 </linearLayout>50 </linearLayout>
绑定子页面:vIEwpager_1,vIEwpager_2,vIEwpager_3 这三个子布局需要另外创建;
以及添加小圆点至List里面。
1 //设置vIEwpager布局 2 vp_robot_main = contentVIEw.findVIEwByID(R.ID.vp_robot_main); 3 4 vIEws = new ArrayList<>(); 5 LayoutInflater mli = LayoutInflater.from(this); 6 VIEw vIEw1 = mli.inflate(R.layout.vIEwpager_1,null); 7 VIEw vIEw2 = mli.inflate(R.layout.vIEwpager_2,null); 8 VIEw vIEw3 = mli.inflate(R.layout.vIEwpager_3,null); 9 vIEws.add(vIEw1);10 vIEws.add(vIEw2);11 vIEws.add(vIEw3);12 //小圆点13 dots = new ArrayList<>();14 dots.add(findVIEwByID(R.ID.dot_1));15 dots.add(findVIEwByID(R.ID.dot_2));16 dots.add(findVIEwByID(R.ID.dot_3));
1 /** 2 * 配置主页adapter 3 */ 4 private voID setMainAdapter() { 5 6 MyVIEwPagerAdapter myVIEwPagerAdapter = new MyVIEwPagerAdapter(this,vIEws,mainItemmodelList); 7 vp_robot_main.setAdapter(myVIEwPagerAdapter); 8 9 //设置指示器状态10 //小圆点选中状态11 dots.get(0).setBackgroundResource(R.drawable.dot_focused);12 vp_robot_main.setonPagechangelistener(new VIEwPager.OnPagechangelistener() {13 @OverrIDe14 public voID onPageScrolled(int i,float v,int i1) {15 16 }17 18 @OverrIDe19 public voID onPageSelected(int position) {20 21 dots.get(oldposition).setBackgroundResource(R.drawable.dot_normal);22 dots.get(position).setBackgroundResource(R.drawable.dot_focused);23 oldposition = position;24 }25 26 @OverrIDe27 public voID onPageScrollStateChanged(int i) {28 29 }30 });31 }
自定义viewpager的adapter:
1 public class MyVIEwPagerAdapter extends PagerAdapter implements VIEw.OnClickListener { 2 private Context mContext; 3 private List<VIEw> vIEws; 4 private List<MainItemmodel> mainItemmodels = new ArrayList<>(); 5 //主页中的9个item 6 private ImageVIEw image1,image2,image3,image4 7 ,image5,image6,image7,image8,image9; 8 9 public MyVIEwPagerAdapter(Context context,List<VIEw> vIEws,List<MainItemmodel> mainItemmodels){ 10 this.mContext = context; 11 this.vIEws = vIEws; 12 this.mainItemmodels = mainItemmodels; 13 14 } 15 @OverrIDe 16 public int getCount() { 17 return vIEws.size(); 18 } 19 20 @OverrIDe 21 public boolean isVIEwFromObject(@NonNull VIEw vIEw,@NonNull Object object) { 22 return vIEw == object; 23 } 24 25 @NonNull 26 @OverrIDe 27 public Object instantiateItem(@NonNull VIEwGroup container,int position) { 28 29 KLog.d("这是instantiateItem"); 30 container.addVIEw(vIEws.get(position)); 31 switch (position){ 32 case 0: 33 KLog.d("000"); 34 image1 = vIEws.get(0).findVIEwByID(R.ID.iv_image1); 35 image2 = vIEws.get(0).findVIEwByID(R.ID.iv_image2); 36 image3 = vIEws.get(0).findVIEwByID(R.ID.iv_image3); 37 image4 = vIEws.get(0).findVIEwByID(R.ID.iv_image4); 38 39 image1.setTag(0); 40 image1.setonClickListener(this); 41 image2.setTag(1); 42 image2.setonClickListener(this); 43 image3.setTag(2); 44 image3.setonClickListener(this); 45 image4.setTag(3); 46 image4.setonClickListener(this); 47 48 break; 49 50 case 1: 51 KLog.d("111"); 52 image5 = vIEws.get(1).findVIEwByID(R.ID.iv_image5); 53 image6 = vIEws.get(1).findVIEwByID(R.ID.iv_image6); 54 image7 = vIEws.get(1).findVIEwByID(R.ID.iv_image7); 55 image8 = vIEws.get(1).findVIEwByID(R.ID.iv_image8); 56 image5.setTag(4); 57 image5.setonClickListener(this); 58 image6.setTag(5); 59 image6.setonClickListener(this); 60 image7.setTag(6); 61 image7.setonClickListener(this); 62 image8.setTag(7); 63 image8.setonClickListener(this); 64 break; 65 case 2: 66 KLog.d("222"); 67 image9 = vIEws.get(2).findVIEwByID(R.ID.iv_image9); 68 image9.setTag(8); 69 image9.setonClickListener(this); 70 break; 71 default: 72 break; 73 } 74 return vIEws.get(position); 75 } 76 77 @OverrIDe 78 public voID destroyItem(@NonNull VIEwGroup container,int position,@NonNull Object object) { 79 container.removeVIEw(vIEws.get(position)); 80 } 81 82 public voID skipActivity(Class clz) { 83 if (!MyUtil.isFastDoubleClick()) { 84 startActivity(new Intent(mContext,clz)); 85 } 86 } 87 88 public voID onClick(VIEw vIEw){ 89 int tag = (int) vIEw.getTag(); 90 switch(tag){ 91 case 0: 92 if (AIChatManager.isQrDreamInitSuccess) { 93 AIChatManager.getInstance().startTTS("同步课堂"); 94 } 95 skipActivity(SyncclassActivity.class); 96 break; 97 case 1: 98 if (AIChatManager.isQrDreamInitSuccess) { 99 AIChatManager.getInstance().startTTS("幼儿启蒙");100 }101 skipActivity(ChildEnlightenActivity.class);102 break;103 case 2:104 if (AIChatManager.isQrDreamInitSuccess) {105 AIChatManager.getInstance().startTTS("文学乐园");106 }107 skipActivity(literatureWorldActivity.class);108 break;109 case 3:110 if (AIChatManager.isQrDreamInitSuccess) {111 AIChatManager.getInstance().startTTS("绘本识图");112 }113 CSZJUtil.skipOtherApp(mContext,CSZJUtil.PICTUREBOOK_PACKAGE_name);114 break;115 case 4:116 if (AIChatManager.isQrDreamInitSuccess) {117 AIChatManager.getInstance().startTTS("数学乐园");118 }119 skipActivity(MathWorldActivity.class);120 break;121 case 5:122 if (AIChatManager.isQrDreamInitSuccess) {123 AIChatManager.getInstance().startTTS("英语乐园");124 }125 Intent inetnt = new Intent(mContext,NetworkResdisplayActivity.class);126 inetnt.putExtra(AppConstants.NETWORK_RES_INTENT_KEY,AppConstants.NETWORK_RES_ENGliSH_SONG);127 startActivity(inetnt);128 break;129 case 6:130 if (AIChatManager.isQrDreamInitSuccess) {131 AIChatManager.getInstance().startTTS("科学天地");132 }133 skipActivity(ScIEnceActivity.class);134 break;135 case 7:136 if (AIChatManager.isQrDreamInitSuccess) {137 AIChatManager.getInstance().startTTS("娱乐天地");138 }139 skipActivity(RecreationWorldActivity.class);140 break;141 case 8:142 if (AIChatManager.isQrDreamInitSuccess) {143 AIChatManager.getInstance().startTTS("百宝箱");144 }145 skipActivity(TreasureBoxActivity.class);146 break;147 default:148 break;149 150 }151 }152 }总结
以上是内存溢出为你收集整理的ViewPager实现页面切换全部内容,希望文章能够帮你解决ViewPager实现页面切换所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)