关于Fragment+viewpager的方法 注意:有侧滑就用FragmentLayout public class MainActivity extends BaseActivity { private ViewPager view_pager; private ArrayList<Fragment> list; private RadioGroup radioGroup; @Override public int bindLayout() { return R.layout.activity_main; } @Override protected void initView() { view_pager = bindView(R.id.view_pager); radioGroup = bindView(R.id.radio_group); } @Override protected void initData() { //创建数据 list = new ArrayList<>(); list.add(new Frag01()); list.add(new Frag02()); list.add(new Frag03()); //适配器 view_pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int i) { return list.get(i); } @Override public int getCount() { return list.size(); } }); } @Override protected void bindEvent() { //滑动切换 view_pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) { } @Override public void onPageSelected(int i) { radioGroup.check(radioGroup.getChildAt(i).getId()); } @Override public void onPageScrollStateChanged(int i) { } }); //点击切换 radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (i) { case R.id.radio1: view_pager.setCurrentItem(0); break; case R.id.radio2: view_pager.setCurrentItem(1); break; case R.id.radio3: view_pager.setCurrentItem(2); break; } } }); } }
Fragment的方法
public class MainActivity extends BaseActivity { private RadioGroup radio_group; private Frag01 frag01; private Frag02 frag02; private Frag03 frag03; private FragmentManager manager; @Override public int bindLayout() { return R.layout.activity_main; } @Override protected void initView() { radio_group = bindView(R.id.radio_group); } @Override protected void initData() { //创建数据 frag01 = new Frag01(); frag02 = new Frag02(); frag03 = new Frag03(); manager = getSupportFragmentManager(); manager.beginTransaction() .add(R.id.pager, frag01) .add(R.id.pager, frag02) .add(R.id.pager, frag03) .show(frag01) .hide(frag02) .hide(frag03).commit(); } @Override protected void bindEvent() { radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { private FragmentTransaction transaction; @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { transaction = manager.beginTransaction(); switch (i) { case R.id.radio1: transaction.show(frag01) .hide(frag02) .hide(frag03); break; case R.id.radio2: transaction.show(frag02) .hide(frag01) .hide(frag03); break; case R.id.radio3: transaction.show(frag03) .hide(frag02) .hide(frag01); break; } transaction.commit(); } }); } }