加入ViewPager
加载显示的页卡
将Layout布局转换为View对象
1>LayoutInflater if = getLayoutInflater().from(this);
if.inflate(resource,root);
2>View.inflate(context,resource,root);
配置Adapter
1>PagerAdapter 数据源:List< View >
2>FragmentPagerAdapter 数据源:List< Fragment >
3>FragmentStatePagerAdapter 数据源:List< Fragment >
MainActivity.java
package com.example.angel.project1;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{
private List<View> viewList;
private List<String> titleList;
private MyPagerAdapter pagerAdapter;
private PagerTabStrip pagerTabStrip;
private ViewPager pager;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
viewList = new ArrayList<View>();
/*
* 通过View对象作为ViewPager的数据源
* */
View view1 = View.inflate(this,R.layout.view1,null);
View view2 = View.inflate(this,R.layout.view2,null);
View view3 = View.inflate(this,R.layout.view3,null);
View view4 = View.inflate(this,R.layout.view4,null);
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);
viewList.add(view4);
//为ViewPager页卡设置标题
pagerTabStrip = (PagerTabStrip) findViewById(R.id.tab);
titleList = new ArrayList<>();
titleList.add("第一页");
titleList.add("第二页");
titleList.add("第三页");
titleList.add("第四页");
//为PagerTabStrip设置属性
pagerTabStrip.setBackgroundColor(Color.GRAY);
pagerTabStrip.setTextColor(Color.BLUE);
pagerTabStrip.setDrawFullUnderline(false);
pagerTabStrip.setTabIndicatorColor(Color.YELLOW);
//初始化ViewPager
pager=(ViewPager)findViewById(R.id.pager);
//创建PagerAdapter适配器
pagerAdapter = new MyPagerAdapter(viewList,titleList);
//ViewPager加载适配器
pager.setAdapter(pagerAdapter);
//设置监听器
pager. setOnPageChangeListener(this);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Toast.makeText(this,"这是第"+position+"个页面",Toast.LENGTH_LONG).show();
}
@Override
public void onPageScrollStateChanged(int state) {
}
}
MyPagerAdapter.java
package com.example.angel.project1;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;
public class MyPagerAdapter extends PagerAdapter {
private List<View> viewList;
private List<String> titleList;
public MyPagerAdapter(List<View>viewList,List<String> titleList){
this.viewList = viewList;
this.titleList = titleList;
}
/*
* 返回的是页卡的数量
* */
public int getCount() {
return viewList.size();
}
/*
* 判断View是否来自于该对象
* */
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
/*
* 实例化页卡
* */
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
/*
* 设置页卡标题
* */
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
/*
* 销毁一个页卡
* */
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<android.support.v4.view.PagerTabStrip
android:id="@+id/tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top">
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
</LinearLayout>
view1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一个界面" />
</LinearLayout>