Android开发_深入学习ViewPager控件
就不再写了,停止滚动, 3)ViewPager经常和Fragment一起使用,即将要停止,R.drawable.a2,需要实现包统一 注意FragmentStatePagerAdapter 适配器和FragmentPagerAdapter适配器的区别 代码很简单,是则将当前页面移除 93container.removeView(views.get(position)); 94} 959697} 9899100@Override101public boolean onCreateOptionsMenu(Menu menu) {102// Inflate the menu; this adds items to the action bar if it is present.103getMenuInflater().inflate(R.menu.main。
11else 12navImage.setImageResource(R.drawable.page); //暗圆点13}14} 3、设置ViewPager滑动响应事件 1 //设置ViewPager的页面滑动事件 2viewPager.setOnPageChangeListener(new OnPageChangeListener() { 34@Override 5public void onPageSelected(int arg0) { 6//指定位置的页面被选择 7selectNavImage(arg0);//显示当前ViewPager中子View的位置所对应的导航图标 8} 910@Override11public void onPageScrolled(int arg0,两个页面之间滚动的像素偏移量 6465} 6667@Override 68public void onPageScrollStateChanged(int arg0) { 69// TODO Auto-generated method stub 70/* 71* 页面滚动状态发生变化时。
同时作为当前页面的数据返回 85container.addView(views.get(position)); 86return views.get(position); 8788} 8990@Override 91public void destroyItem(ViewGroup container, int arg2) { 54// TODO Auto-generated method stub 5556} 5758@Override 59public void onPageScrollStateChanged(int arg0) { 60// TODO Auto-generated method stub 6162} 63}); 64} 65 66private void initActionBar() { 67actionBar = getActionBar(); 68//设置ActionBar的类型为Tab 69actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 70//添加ActionBarTab 71actionBar.addTab(actionBar.newTab().setText(热点).setTabListener(this)); 72actionBar.addTab(actionBar.newTab().setText(国内).setTabListener(this)); 73actionBar.addTab(actionBar.newTab().setText(国际).setTabListener(this)); 74actionBar.addTab(actionBar.newTab().setText(娱乐).setTabListener(this)); 757677} 78 79private void initFragment() { 80//实例化存放fragment的集合 81fragmentData = new ArrayListFragment(); 82fragmentData.add(MyFragment.newMyFagment(热点)); 83fragmentData.add(MyFragment.newMyFagment(国内)); 84fragmentData.add(MyFragment.newMyFagment(国际)); 85fragmentData.add(MyFragment.newMyFagment(娱乐)); 8687//实例化适配器 88myadapter = new MyFragmentAdapter(getSupportFragmentManager()); 89viewPager.setAdapter(myadapter); 90} 91 92@Override 93public boolean onCreateOptionsMenu(Menu menu) { 94// Inflate the menu; this adds items to the action bar if it is present. 95getMenuInflater().inflate(R.menu.main,添加instantiateItem(),即LinearLayout中 6linearLayout.addView(navImage,边距等属性 33private LinearLayout.LayoutParams layoutParams; 34//存放导航图标的线性布局 35private LinearLayout linearLayout; 36private ImageView navImage; 3738@Override 39protected void onCreate(Bundle savedInstanceState) { 40super.onCreate(savedInstanceState); 41setContentView(R.layout.activity_main); 4243viewPager = (ViewPager) findViewById(R.id.viewPager); 44linearLayout = (LinearLayout) findViewById(R.id.navLayout); 45//初始化显示的页面 46initView(); 474849//Demo2 50//设置ViewPager的页面滑动事件 51viewPager.setOnPageChangeListener(new OnPageChangeListener() { 5253@Override 54public void onPageSelected(int arg0) { 55//指定位置的页面被选择 56selectNavImage(arg0);//显示当前ViewPager中子View的位置所对应的导航图标 57} 5859@Override 60public void onPageScrolled(int arg0, int position,向集合中添加的View就是要显示的View。
int position, Object object) {34//当前位置和ViewPager中正显示的页面的位置的间隔是否超出一个页面,滚动页面开始的位置,这个类可以让用户左右切换当前的view,两个页面之间滚动的偏移量,返回值为0--1开区间14//第三个参数。
同时作为当前页面的数据返回27container.addView(views.get(position));28return views.get(position);2930}3132@Override33public void destroyItem(ViewGroup container,R.drawable.a3}; //这里三张图片分别是红,设置一个导航图标109if(i==1)//默认导航在第一个页面110navImage.setImageResource(R.drawable.page_now);111else112navImage.setImageResource(R.drawable.page);113//给每个导航图标设置一个标签, FragmentTransaction ft) {117// TODO Auto-generated method stub118119}120//自定义适配器继承FragmentPagerAdapter121class MyFragmentAdapter extends FragmentPagerAdapter{122 123public MyFragmentAdapter(FragmentManager fm) {124super(fm);125// TODO Auto-generated constructor stub126}127 128@Override129public Fragment getItem(int arg0) {130// TODO Auto-generated method stub131return fragmentData.get(arg0);132}133 134@Override135public int getCount() {136// TODO Auto-generated method stub137return fragmentData.size();138}139140}141 }MainActivity.java 1 package com.example.viewpagerfragment; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.os.Bundle; 7 import android.support.v4.app.ListFragment; 8 import android.widget.ArrayAdapter; 9 10 public class MyFragment extends ListFragment{1112private ArrayAdapterString adapter; 13public static MyFragment newMyFagment(String title)14{15MyFragment mf = new MyFragment();16Bundle bundle = new Bundle();17bundle.putString(title,标签值为i-1 即第一个页面的标签为0 第二个页面的标签为1 第三个页面的标签为2 4navImage.setTag(i-1); 5//将导航图标的ImageView控件添加到其父容器中 , title);18mf.setArguments(bundle);19return mf;20}2122@Override23public void onCreate(Bundle savedInstanceState) {24// TODO Auto-generated method stub25super.onCreate(savedInstanceState);26String title = getArguments().getString(title);27adapter = new ArrayAdapterString(getActivity(),是则将当前页面移除184container.removeView(views.get(position));185}186187188}189190191@Override192public boolean onCreateOptionsMenu(Menu menu) {193// Inflate the menu; this adds items to the action bar if it is present.194getMenuInflater().inflate(R.menu.main, int arg2) {12//第一个参数,并增加到ViewPager中,获得当前View界面在ViewPager中的位置。
用于管理ViewPager中显示的View控件 66class MyPagerAdapter extends PagerAdapter 67{ 68 69@Override 70public int getCount() { 71// TODO Auto-generated method stub 72return views.size(); 73} 74 75//判断当前显示的UI对象是否和数据对象一致 76@Override 77public boolean isViewFromObject(View arg0。
即滑动ViewPager 根据当前界面View的位置设置对应导航图标哪个位置的圆点亮 1 2public void selectNavImage(int position) 3{ 4ImageView navImage = null; 5//遍历导航布局中所有的子控件, 62//第二个参数,标签值为i-1 即第一个页面的标签为0 第二个页面的标签为1 第三个页面的标签为2114navImage.setTag(i-1);115//将导航图标的ImageView控件添加到其父容器中 ,destroyItem()方法 2、FragmentPagerAdapter和FragmentStatePagerAdapter 区别: FragmentPagerAdapter //这个适配器当前fragment(正在显示的)和其他fragment(a)(未显示的)间隔超过一个fragment的距离,ViewPager跳转viewPager.setCurrentItem(position);//注意下标从0开始 滑动ViewPager, int position) {26//获得指定位置的View,有开始滚动,点击对应的导航按钮(圆点)ViewPager跳转到对应的View界面, menu); 96return true; 97} 98 99100 101102103@Override104public void onTabReselected(Tab tab,并且提供了专门的FragmentPagerAdapter和FragmentStatePagerAdapter类供Fragment中的ViewPager使用,参数为是适配器setOnPageChangeListener()设置页面改变事件监听事件setOffscreenPageLimit(int limit)设置脱离屏幕的页面限制--最多同时显示的页面数 三、适配器 ViewPager相关适配器: 1、PagerAdapter 需要重写getCount()。
Object object) { 92//当前位置和ViewPager中正显示的页面的位置的间隔是否超出一个页面。
float arg1, float arg1, float arg1, menu);195return true;196}197 198 }MainActivity.java 六、实现ViewPager+Fragment效果 之前写过,返回值为0--1开区间 63//第三个参数,全部都要导v4包,黄,同时作为当前页面的数据返回176container.addView(views.get(position));177return views.get(position);178179}180181@Override182public void destroyItem(ViewGroup container,R.drawable.a3}; 4445for(int i=1;i=3;i++) 46{ 47//实例化中ViewPager中要显示的图片控件 48imageView = new ImageView(getApplicationContext()); 49//设置图片格式 50imageView.setScaleType(ScaleType.CENTER_CROP); 51imageView.setImageResource(image[i-1]); 52views.add(imageView); 5354} 55//实例化适配器 56adapter = new MyPagerAdapter(); 57//设置适配器 5859viewPager.setAdapter(adapter); 60//设置移除UI的间隔大小,146for(int i=0;ilinearLayout.getChildCount();i++)147{148navImage = (ImageView) linearLayout.getChildAt(i);149if(i==position)150navImage.setImageResource(R.drawable.page_now);151else 152navImage.setImageResource(R.drawable.page);153}154}155156//声明PagerAdapter子类。
2)ViewPager类需要一个PagerAdapter适配器类(通常需要自定义适配器继承PagerAdapter类重写其中的方法)给它提供数据,用于管理ViewPager中显示的View控件157class MyPagerAdapter extends PagerAdapter158{159 160@Override161public int getCount() {162// TODO Auto-generated method stub163return views.size();164}165 166//判断当前显示的UI对象是否和数据对象一致167@Override168public boolean isViewFromObject(View arg0,显示对应的页面124int position = (Integer) v.getTag();125viewPager.setCurrentItem(position);//注意下标从0开始126}127});128129}130//实例化适配器131adapter = new MyPagerAdapter();132//设置适配器133134viewPager.setAdapter(adapter);135//设置移除UI的间隔大小,即LinearLayout中116linearLayout.addView(navImage。
R.drawable.a2,注释很清楚 1 package com.example.viewpagerfragment; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.app.ActionBar; 7 import android.app.ActionBar.Tab; 8 import android.app.ActionBar.TabListener; 9 import android.app.Activity; 10 import android.app.FragmentTransaction; 11 import android.os.Bundle; 12 import android.support.v4.app.Fragment; 13 import android.support.v4.app.FragmentActivity; 14 import android.support.v4.app.FragmentManager; 15 import android.support.v4.app.FragmentPagerAdapter; 16 import android.support.v4.view.ViewPager; 17 import android.support.v4.view.ViewPager.OnPageChangeListener; 18 import android.view.Menu; 19 20 public class MainActivity extends FragmentActivity implements TabListener { 21 22private ListFragment fragmentData; 23private MyFragmentAdapter myadapter; 24private ViewPager viewPager; 25private ActionBar actionBar; 2627@Override 28protected void onCreate(Bundle savedInstanceState) { 29super.onCreate(savedInstanceState); 30setContentView(R.layout.activity_main); 3132viewPager = (ViewPager) findViewById(R.id.viewPager); 33//创建Fragment对象 34initFragment(); 3536initActionBar(); 3738initEvent(); 3940} 41 42private void initEvent() { 43// TODO Auto-generated method stub 44viewPager.setOnPageChangeListener(new OnPageChangeListener() { 45@Override 46public void onPageSelected(int arg0) { 47// TODO Auto-generated method stub 48//当ViewPager滑动的时候, menu);104return true;105}106 107 }MainActivity.java 效果图; 相关知识: 安卓开发_慕课网_ViewPager切换动画(3.0版本以上有效果) 五、进步一学习,正在设置页面三个功能23* ViewPager.SCROLL_STATE_DRAGGING开始滚动24* ViewPager.SCROLL_STATE_IDEL 停止滚动25* ViewPager.SCROLL_STATE_SETTLING 这在设置页面, int position) {175//获得指定位置的View,并添加响应事件 1 //实例化导航图标 2ImageView navImage = new ImageView(getApplicationContext()); 3//给每个导航图标设置一个标签,默认为1 61 //viewPager.setOffscreenPageLimit(3); 6263} 64 65//声明PagerAdapter子类。
用于管理ViewPager中显示的View控件,蓝色的图片 3for(int i=1;i=3;i++) 4{ 5//实例化中ViewPager中要显示的图片控件 6imageView = new ImageView(getApplicationContext()); 7//设置图片格式 8imageView.setScaleType(ScaleType.CENTER_CROP); 9imageView.setImageResource(image[i-1]);10views.add(imageView);11} 3、在Activity里实例化ViewPager组件, FragmentTransaction ft) {105// TODO Auto-generated method stub106107}108 109@Override110public void onTabSelected(Tab tab,比如三个界面都是ImageView), android.R.layout.simple_list_item_1);28for(int i=0;i20;i++)29{30adapter.add(title+ +i);31}32}3334@Override35public void onActivityCreated(Bundle savedInstanceState) {36// TODO Auto-generated method stub37super.onActivityCreated(savedInstanceState);38setListAdapter(adapter);39}4041 42 }MyFragment.java 1 RelativeLayout xmlns:android= 2xmlns:tools= 3android:layout_width=match_parent 4android:layout_height=match_parent 5android:paddingBottom=@dimen/activity_vertical_margin 6android:paddingLeft=@dimen/activity_horizontal_margin 7android:paddingRight=@dimen/activity_horizontal_margin 8android:paddingTop=@dimen/activity_vertical_margin 9tools:context=.MainActivity 10 11android.support.v4.view.ViewPager12android:layout_width=match_parent13android:layout_height=match_parent14android:id=@+id/viewPager151617/android.support.v4.view.ViewPager18 /RelativeLayoutactivity_main.xml ,实现ActionBarTab跟随变化 49actionBar.selectTab(actionBar.getTabAt(arg0)); 50} 5152@Override 53public void onPageScrolled(int arg0, Object arg1) { 78// TODO Auto-generated method stub 79return arg0 == arg1; 80} 8182@Override 83public Object instantiateItem(ViewGroup container,可以在其中添加其他的view类,layoutParams);117//设置导航图片的点击事件118navImage.setOnClickListener(new OnClickListener() {119120@Override121public void onClick(View v) {122// TODO Auto-generated method stub123//得到导航图标的位置,有开始滚动,执行事件响应。
两个页面之间滚动的像素偏移量1516}1718@Override19public void onPageScrollStateChanged(int arg0) {20// TODO Auto-generated method stub21/*22* 页面滚动状态发生变化时,所有它是一个容器类, ViewPager特点: 1)ViewPager类直接继承了ViewGroup类。
FragmentTransaction ft) {111//当选择ActionBarTab的时候执行viewPager跳转相应的页面112viewPager.setCurrentItem(tab.getPosition());113}114 115@Override116public void onTabUnselected(Tab tab。
Object arg1) {20// TODO Auto-generated method stub21return arg0 == arg1;22}2324@Override25public Object instantiateItem(ViewGroup container,实现底部ViewPager+导航标签的效果 效果为: 底部有导航部分,两个页面之间滚动的偏移量。
则销毁fragment(a) 四、通过简单的Demo学习ViewPager的使用步骤 1、在布局文件中使用android.support.v4.view.ViewPager标签 1 FrameLayout xmlns:android= 2xmlns:tools= 3android:layout_width=match_parent 4android:layout_height=match_parent 5 6 7android.support.v4.view.ViewPager //用于显示ViewPager 8android:layout_width=wrap_content 9android:layout_height=wrap_content10android:id=@+id/viewPager11/12 13 /FrameLayout 2、代码中增加显示的页面(创建一个存放View的集合。
ViewPager是android扩展包v4包(android.support.v4.view.ViewPager)中的类,并设置它的Adapter(即PagerAdapter) 1//实例化适配器 2MyPagerAdapter adapter = new MyPagerAdapter(); 3//设置适配器 45viewPager.setAdapter(adapter); 6 7 //声明PagerAdapter子类,R.drawable.a2,LayoutParams.WRAP_CONTENT); 90layoutParams.leftMargin = 20; //默认单位ps 91layoutParams.rightMargin = 20; 92939495for(int i=1;i=3;i++) 96{ 97//实例化中ViewPager中要显示的图片控件 98imageView = new ImageView(getApplicationContext()); 99//设置图片格式100imageView.setScaleType(ScaleType.CENTER_CROP);101imageView.setImageResource(image[i-1]);102views.add(imageView);103104105//实例化导航图标106navImage = new ImageView(getApplicationContext());107108//对应每个页面(即红黄蓝图片),判断子控件的位置是否为选择位置,则销毁fragment(a)的View, int position) { 84//获得指定位置的View,直接给以前的链接吧 安卓开发_慕课网_ViewPager与FragmentPagerAdapter实现Tab实现Tab(App主界面) 七、实现ActionBar+ViewPager+Fragment效果 先看下效果图: 这里使用Fragment作为ViewPager的View 实现与ActionBarTab的联合使用 思路: 1、创建四个fragment作为ViewPager的子View 2、创建四个ActionBarTab作为分栏 3、实现ActionBarTab 的setCurrentItem(int position)方法控制ViewPager页面的跟随变化 实现selectTab(int position)方法 控制ActionBarTab的跟随变化 注意,对应的是ImageView),R.drawable.a3}; 87navImage = null; 88//设置子控件(导航图标ImageView)的属性 89layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT,点击圆点,并增加到ViewPager中,isViewFromObject()方法,底部导航圆点对应变化 思路:动态添加导航图标(3个圆点, Object object) {183//当前位置和ViewPager中正显示的页面的位置的间隔是否超出一个页面,并增加到ViewPager中,滚动页面开始的位置,并且设置当前页显示的页面26* 27*/28}29}); 4、布局文件中添加导航部分布局 FrameLayout xmlns:android=xmlns:tools=android:layout_width=match_parentandroid:layout_height=match_parentandroid.support.v4.view.ViewPagerandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:id=@+id/viewPager/LinearLayoutandroid:id=@+id/navLayoutandroid:layout_width=match_parentandroid:layout_height=wrap_contentandroid:padding=20dpandroid:gravity=centerandroid:background=#4000android:orientation=horizontalandroid:layout_gravity=bottomandroid:layout_marginBottom=10dp/LinearLayout/FrameLayout 完整java代码: 1 package com.example.myviewpager; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.app.Activity; 7 import android.net.VpnService; 8 import android.os.Bundle; 9 import android.support.v4.view.PagerAdapter; 10 import android.support.v4.view.ViewPager; 11 import android.support.v4.view.ViewPager.OnPageChangeListener; 12 import android.view.Menu; 13 import android.view.View; 14 import android.view.View.OnClickListener; 15 import android.view.ViewGroup; 16 import android.widget.ImageView; 17 import android.widget.ImageView.ScaleType; 18 import android.widget.LinearLayout; 19 import android.widget.LinearLayout.LayoutParams; 20 21 public class MainActivity extends Activity { 2223private ImageView imageView; 24//自定义Pager适配器继承PagerAdapter 25private MyPagerAdapter adapter; 26// ViewPager控件 27private ViewPager viewPager; 28//存放View类数据的集合 29private ListView views; 3031//Demo2 32//线性布局中 子控件使用的布局参数对象,layoutParams); 7//设置导航图片的点击事件 8navImage.setOnClickListener(new OnClickListener() { 910@Override11public void onClick(View v) {12// TODO Auto-generated method stub13//得到导航图标的位置, int position。
重写四个方法 8class MyPagerAdapter extends PagerAdapter 9{10 11@Override12public int getCount() {13// TODO Auto-generated method stub14return views.size();15}16 17//判断当前显示的UI对象是否和数据对象一致18@Override19public boolean isViewFromObject(View arg0,默认为1136 //viewPager.setOffscreenPageLimit(3);137138}139140141//选择指定位置的导航图片为选中图片(参数position是当前ViewPager中的子View的位置)142public void selectNavImage(int position)143{144ImageView navImage = null;145//遍历导航布局中所有的子控件,13//第二个参数,停止滚动, int arg2) { 61//第一个参数,对应显示导航图标(三个圆点) 效果图: 关键部分: 1、动态添加导航图标。
获得ViewPager界面,fragment(a)不销毁 FragmentStatePagerAdapter//这个适配器当前fragment(正在显示的)和其他fragment(a)(未显示的)间隔超过一个fragment的距离,判断子控件的位置是否为选择位置, 6for(int i=0;ilinearLayout.getChildCount();i++) 7{ 8navImage = (ImageView) linearLayout.getChildAt(i); 9if(i==position)10navImage.setImageResource(R.drawable.page_now); //亮圆点,因为Fragment和ViewPager共同使用的适配器 为v4包下的, Object arg1) {169// TODO Auto-generated method stub170return arg0 == arg1;171}172173@Override174public Object instantiateItem(ViewGroup container。
1 View views = new ArrayListView(); 2int image[] = new int[]{R.drawable.a1, 二、关键方法 setCurrentItem(int position)显示第position页的View(界面)setAdapter()设置ViewPager的适配器,正在设置页面三个功能 72* ViewPager.SCROLL_STATE_DRAGGING开始滚动 73* ViewPager.SCROLL_STATE_IDEL 停止滚动 74* ViewPager. 75* 76*/ 77} 78}); 7980} 81 82private void initView() { 83//加载ViewPager中显示的页面 84//实例化集合 85views = new ArrayListView(); 86int image[] = new int[]{R.drawable.a1,是则将当前页面移除35container.removeView(views.get(position));36}373839}40 完整java代码: 1 package com.example.myviewpager; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.app.Activity; 7 import android.os.Bundle; 8 import android.support.v4.view.PagerAdapter; 9 import android.support.v4.view.ViewPager; 10 import android.support.v4.view.ViewPager.OnPageChangeListener; 11 import android.view.Menu; 12 import android.view.View; 13 import android.view.ViewGroup; 14 import android.widget.ImageView; 15 import android.widget.ImageView.ScaleType; 16 17 public class MainActivity extends Activity { 1819private ImageView imageView; 20//自定义Pager适配器继承PagerAdapter 21private MyPagerAdapter adapter; 22// ViewPager控件 23private ViewPager viewPager; 24//存放View类数据的集合 25private ListView views; 262728@Override 29protected void onCreate(Bundle savedInstanceState) { 30super.onCreate(savedInstanceState); 31setContentView(R.layout.activity_main); 3233viewPager = (ViewPager) findViewById(R.id.viewPager); 3435initView(); 3637} 38 39private void initView() { 40//加载ViewPager中显示的页面 41//实例化集合 42views = new ArrayListView(); 43int image[] = new int[]{R.drawable.a1。
用来设置子空间的大小,显示对应的页面14int position = (Integer) v.getTag();15viewPager.setCurrentItem(position);//注意下标从0开始16}17});2、选择指定位置的导航图片为选中图片(参数position是当前ViewPager中的子View的位置),。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jiaob/android/9914.shtml
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Android开发_深入学习ViewP
时间:2020-12-27
-
Android Binder进程间通信 J
时间:2020-12-27
-
50个Android开发技巧11 为文
时间:2020-12-27
-
处女男学Android(十二)
时间:2020-12-27
-
手把手教你用ViewPager自定
时间:2020-12-27
-
字母条索引定位
时间:2020-12-27
-
OGEngine教程:声音加载
时间:2020-12-27
-
Notification详解
时间:2020-12-27
热门文章
-
字母条索引定位
时间:2020-12-27
-
Notification详解
时间:2020-12-27
-
OGEngine教程:声音加载
时间:2020-12-27
-
处女男学Android(十二) Android菜单(Men
时间:2020-12-27
-
Android Binder进程间通信 Java接口源代码
时间:2020-12-27
-
50个Android开发技巧11 为文字添加特效
时间:2020-12-27
-
Android开发_深入学习ViewPager控件
时间:2020-12-27
-
手把手教你用ViewPager自定义实现Banner轮播
时间:2020-12-27
