ViewPager+Fragment+RadioGroup实现页面联动\点击切换
2016-05-30 19:49
447 查看
废话不多说 上源码
MianActivity.java
public class MainActivity extends FragmentActivity {
}
ViewPagerAdapter.java
public class MViewPagerAdapter extends FragmentPagerAdapter{
}
Fragment
public class FragmentCart extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_cart, null);
return view;
}
}
MianActivity.java
public class MainActivity extends FragmentActivity {
/** * 声明viewpager */ @ViewInject(R.id.vp_veiwpager) private ViewPager mViewPager; /** * 声明list集合 */ private List<Fragment> fragmentList; /** * 声明radiogroup相关按键 */ @ViewInject(R.id.rg_radiogroup) private RadioGroup radioGroup; @ViewInject(R.id.rb_bookstore) private RadioButton rbStore; @ViewInject(R.id.rb_bookcart) private RadioButton rbCart; @ViewInject(R.id.rb_lately) private RadioButton rbLately; @ViewInject(R.id.rb_mine) private RadioButton rbMine; /** * 声明viewpager 的适配器 */ private MViewPagerAdapter mViewPagerAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化控件 x.view().inject(this); // 设置adapter setAdapter(); // 设置listener setListener(); } /** * 为viewpager设置适配器 */ private void setAdapter() { fragmentList = new ArrayList<Fragment>(); fragmentList.add(new FragmentStore()); fragmentList.add(new FragmentCart()); fragmentList.add(new FragmentLately()); fragmentList.add(new FragmentMine()); mViewPagerAdapter = new MViewPagerAdapter(getSupportFragmentManager(), fragmentList); mViewPager.setAdapter(mViewPagerAdapter); // 启动程序直接加载4个界面的数据 mViewPager.setOffscreenPageLimit(4); } /** * 设置viewpager跟radiogroup的监听跟联动 */ private void setListener() {// radioGroup设置onCheckedChangeListener radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_bookstore: mViewPager.setCurrentItem(0);// setCurrentItem 设置当前项目为0 break; case R.id.rb_bookcart: mViewPager.setCurrentItem(1);// setCurrentItem 设置当前项目为1 break; case R.id.rb_lately: mViewPager.setCurrentItem(2);// setCurrentItem 设置当前项目为2 break; case R.id.rb_mine: mViewPager.setCurrentItem(3);// setCurrentItem 设置当前项目为3 break; } } }); mViewPager.setOnPageChangeListener(new OnPageChangeListener() { //为viewpager配置onPageChangeListener方法 @Override public void onPageSelected(int arg0) { switch (arg0) { case 0: rbStore.setChecked(true); break; case 1: rbCart.setChecked(true); break; case 2: rbLately.setChecked(true); break; case 3: rbMine.setChecked(true); break; } } @Override public void onPageScrolled(int arg0, float v, int arg2) { if(v!=0){ //设置第四个fragment的透明度 FragmentMine fragment = (FragmentMine) fragmentList.get(3); fragment.slide(v); } } @Override public void onPageScrollStateChanged(int arg0) { } }); }
}
ViewPagerAdapter.java
public class MViewPagerAdapter extends FragmentPagerAdapter{
private List<Fragment> fragmentList; public MViewPagerAdapter(FragmentManager fm, List<Fragment> fragmentList) { super(fm); this.fragmentList = fragmentList; } @Override public Fragment getItem(int arg0) { // TODO Auto-generated method stub return fragmentList.get(arg0); } @Override public int getCount() { // TODO Auto-generated method stub return fragmentList.size(); }
}
Fragment
public class FragmentCart extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_cart, null);
return view;
}
}
相关文章推荐
- 出题&题解
- PID2 / 开心的金明
- tomcat+websocket实现
- Android APP的字体设置
- IOS 关于取消延迟执行函数的种种。performSelector与cancelPreviousPerformRequestsWithTarget
- 第二次冲刺个人工作总结06
- 点击空白处隐藏div
- Django 进阶(装饰器,Mixin,信号,模式)
- ping www.baidu.com 不通 开启DNS
- 使用markdown编辑器
- Easy-题目7:100. Same Tree
- Easy-题目6:283. Move Zeroes
- java简单的StringBufferuilder和StringBuilder类练习
- innobackupex备份和恢复原理
- Easy-题目5:237. Delete Node in a Linked List
- 【NOIP2013模拟】归途与征程
- 第二次冲刺周期站立会议(4)
- Android 在内部存储读写文件
- .net 垃圾回收 工作站与服务器区别
- XenServer6 虚拟机多vCPU配置方法