ViewPager+Fragment+RadioGroup实现页面联动\点击切换

来源:互联网 发布:新疆网络屏蔽 编辑:程序博客网 时间:2024/05/22 03:22

废话不多说 上源码

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;@Overrideprotected 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;}@Overridepublic Fragment getItem(int arg0) {    // TODO Auto-generated method stub    return fragmentList.get(arg0);}@Overridepublic 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;

}
}

0 0
原创粉丝点击