ViewPager实现页面切换

ViewPager实现页面切换,第1张

概述上图先: 采用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="236d

上图先:

采用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实现页面切换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1121396.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存