//ViewPager
//*.xml
//添加ViewPager
<android.support.v4.view.ViewPager
android:id="@+id/lead_img_vp"
android:layout_width="match_parent"
android:layout_height="400dp"></android.support.v4.view.ViewPager>
//添加Tablayer
</pre><pre name="code" class="html"><android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="50dp"></android.support.design.widget.TabLayout>
//配置适配器
//继承PagerAdapter时只有2个方法 ,另外instantiateItem和destroyItem是后来手动添加的, CharSequence getPageTitle是Tablayre后面要用的
public class Myadapter extends PagerAdapter { //继承PagerAdapter
Context context; //接收传入的上下文
List<View> list; //Pager 中 页面的数量
List<String> listtitle;
public Myadapter(Context context, List<View> list) { //构造函数
this.context = context;
this.list = list;
}
public Myadapter(Context context, List<View> list, List<String> listtitle) { //后面要用
this.context = context;
this.list = list;
this.listtitle = listtitle;
}
@Override
public Object instantiateItem(ViewGroup container, int position) { //在Pager中创建视图
View view=list.get(position);
container.addView(view);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) { //销毁视图
View view=list.get(position);
container.removeView(view);
}
@Override
public int getCount() { //视图的数量
return list.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public CharSequence getPageTitle(int position) {
return listtitle.get(position);
}
//添加Pager到Activity
//viewpager监听
//onPageScrollStateChanged 有个状态“0”代表页面停止滑动,“1”代表在滑动的过程中,“2”滑动停止,最后一个页面“向后滑”不会有2状态,
下面有判断是否是最后一个页面的
<pre name="code" class="java">//onPageScrolled 计算偏移量
//onPageSelected 当前在哪一个页面,postion为当前页面的下标
</pre><p></p><p></p><pre name="code" class="java">ViewPager viep;
Myadapter mad; //申明适配器,视图列表,Tablayout列表,判断是不是最后一页,申明Tablayout
List<View> list;
List<String> listname;
boolean flag=false;
TabLayout tab;
@Override
public void setview() {
setContentView(R.layout.lead);
viep= (ViewPager) findViewById(R.id.lead_img_vp);
list=new ArrayList<>();
listname=new ArrayList<>();
View view1=getLayoutInflater().inflate(R.layout.table1,null);
View view2=getLayoutInflater().inflate(R.layout.table2,null);
View view3=getLayoutInflater().inflate(R.layout.table3,null);
list.add(view1);
list.add(view2);
list.add(view3);
listname.add("1");
listname.add("2");
listname.add("3");
tab= (TabLayout) findViewById(R.id.tab);
mad=new Myadapter(this,list,listname);
viep.setAdapter(mad); //添加viewpager适配器
tab.setupWithViewPager(viep); //将Tablayout添加到viewpager中
tab.setTabsFromPagerAdapter(mad); //添加Tablayout适配器
tab.getTabAt(0).setIcon(R.mipmap.logo_4); //初始化Tablayout的图片
for(int i=1;i<3;i++)
tab.getTabAt(i).setIcon(R.mipmap.logo_3);
viep.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { //viewpager监听
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
tab.getTabAt(position).setIcon(R.mipmap.logo_4);
for(int i=0;i<listname.size();i++)
if(i!=position)
tab.getTabAt(i).setIcon(R.mipmap.logo_3);
}
@Override
public void onPageScrollStateChanged(int state) {
</pre><pre name="code" class="java">
//判断是不是最后一个页面
switch (state){
case 0:
if(!flag&&(viep.getCurrentItem()==list.size()-1)){
Intent intent=new Intent(Leadactivity.this,Home.class);
startActivity(intent);
}
flag=false;
break;
case 1:
flag=false;
break;
case 2:
flag=true;
break;
}
}
});