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); } }
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; } }
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; } }
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(); } }