Android的ViewPager,ViewPager配合Fragment的用法

来源:互联网 发布:godaddy主机绑定域名 编辑:程序博客网 时间:2024/06/01 08:22

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的个数@Overridepublic int getCount() {return mViewList.size();}           @Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0==arg1;}//从当前container中删除指定位置(position)的View@Overridepublic void destroyItem(ViewGroup container, int position,Object object) {container.removeView(mViewList.get(position));}             //做了两件事,第一:将当前视图添加到container中,第二:返回当前View@Overridepublic 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 {@Overridepublic 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{@Overridepublic 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 {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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;}@Overridepublic Fragment getItem(int arg0) {return mFragmentList.get(arg0);}@Overridepublic int getCount() {return  mFragmentList.size();}}

0 0