viewPager+fragment

来源:互联网 发布:纳米盒软件下载 编辑:程序博客网 时间:2024/06/14 08:49

Mainactivity类

public class MainActivity extends AppCompatActivity {    ViewPager vp;   /* Fragment1 f1;    Fragment2 f2;    Fragment3 f3;*/    List<Fragment> list ;    RadioButton btn, btn2, btn3;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        vp = (ViewPager) findViewById(R.id.viewpager);        btn = (RadioButton) findViewById(R.id.btn);        btn2 = (RadioButton) findViewById(R.id.btn2);        btn3 = (RadioButton) findViewById(R.id.btn3);        list = new ArrayList<>();        list.add(new Fragment1());        list.add(new Fragment2());        list.add(new Fragment3());        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(),list);        vp.setAdapter(adapter);        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {            }            @Override            public void onPageScrollStateChanged(int state) {            }        });        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                vp.setCurrentItem(0);            }        });        btn2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                vp.setCurrentItem(1);            }        });        btn3.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                vp.setCurrentItem(2);            }        });    }

 class ViewPagerAdapter extends FragmentPagerAdapter {        public ViewPagerAdapter(FragmentManager fm, List<Fragment> list) {            super(fm);        }        @Override        public Fragment getItem(int position) {            return list.get(position);        }        @Override        public int getCount() {            return list.size();        }    }}
这里强调的是

Fragment 方法   要

List<Fragment> list ;

在oncreate方法里

list = new ArrayList<>();list.add(new Fragment1());list.add(new Fragment2());list.add(new Fragment3());ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(),list);vp.setAdapter(adapter);
要这样new 与fragment new的方法不能相同 

之前fragment 是这样new 的

Fragment  f1 ;

fragment  f2;


oncreate里面是这样的

initView();
这是外面的方法

private void initView() {    f1 = new fragment1();    f2 = new fragment2();    f3 = new fragment3();    f4 = new fragment4();}






Fragment类

public class Fragment3 extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view =  inflater.inflate(R.layout.activity_fragment3,container,false);        return view;    }}

原创粉丝点击