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

废话不多说 上源码

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;

}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值