MainActivity.java
package com.hust.viewpaper;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
public class MainActivity extends Activity {
ArrayList<View> mViewList=new ArrayList<View>();
ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
PagerAdapter mPaperAdapter=new PagerAdapter(){
//返回要滑动的VIew的个数
@Override
public int getCount() {
return mViewList.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
//从当前container中删除指定位置(position)的View
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
container.removeView(mViewList.get(position));
}
//做了两件事,第一:将当前视图添加到container中,第二:返回当前View
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mViewList.get(position));
return mViewList.get(position);
}
};
//设置适配器
mViewPager.setAdapter(mPaperAdapter);
}
public void initViews() {
mViewPager=(ViewPager) findViewById(R.id.viewpager);
View mView1=LayoutInflater.from(this).inflate(R.layout.layout1, null);
View mView2=LayoutInflater.from(this).inflate(R.layout.layout2, null);
View mView3=LayoutInflater.from(this).inflate(R.layout.layout3, null);
mViewList.add(mView1);
mViewList.add(mView2);
mViewList.add(mView3);
}
}
ViewPagerWithFragment
FragmentOne.java
package com.hust.viewpagerwithfragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentOne extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view =inflater.inflate(R.layout.fragment_layout1, container,false);
return view;
}
}
FragmentTwo.java
package com.hust.viewpagerwithfragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentTwo extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_layout2, container,false);
return view;
}
}
FragmentThree.java
package com.hust.viewpagerwithfragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentThree extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreateView(inflater, container, savedInstanceState);
View view=inflater.inflate(R.layout.fragment_layout3, container,false);
return view;
}
}
MainActivity.java
package com.hust.viewpagerwithfragment;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends FragmentActivity {//显示Fragment的Activity要继承FragmentActivity
ArrayList<Fragment> mFragmentList=new ArrayList<Fragment>();
ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
initDatas();
//实例化适配器,并把list集合传进去
ViewPagerAdapter mViewPagerAdapter=new ViewPagerAdapter(getSupportFragmentManager(),mFragmentList);
//设置适配器
mViewPager.setAdapter(mViewPagerAdapter);
}
private void initDatas() {
mFragmentList.add(new FragmentOne());
mFragmentList.add(new FragmentTwo());
mFragmentList.add(new FragmentThree());
}
private void initViews() {
mViewPager=(ViewPager) findViewById(R.id.MyViewPager);
}
}
适配器
package com.hust.viewpagerwithfragment;
import java.util.List;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class ViewPagerAdapter extends FragmentPagerAdapter {//继承FragmentPagerAdapter,只需要重写getItem和getCount方法
List<Fragment> mFragmentList;
public ViewPagerAdapter(FragmentManager fm,List<Fragment> mFragmentList) {
super(fm);
this.mFragmentList=mFragmentList;
}
@Override
public Fragment getItem(int arg0) {
return mFragmentList.get(arg0);
}
@Override
public int getCount() {
return mFragmentList.size();
}
}