关闭

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

372人阅读 评论(0) 收藏 举报
分类:

废话不多说 上源码

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
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android 使用ViewPager和RadioGroup配合Fragment实现标签页,可点击按钮切换、滑动切换。

本人Android新手,很多东西都是现学现卖。。。模仿大神们,分享一下自己的解决办法,也做个记录。大家认为有什么问题随时沟通,一般你都是对的=。= 最近做的项目中需要实现标签页,网上最常见的TabHo...
  • u010241861
  • u010241861
  • 2015-06-26 17:48
  • 2338

Android之ViewPager+Fragment实现页面点击切换和手势滑动

使用ViewPager+Fragment实现页面点击切换和手势滑动,效果图如下: 源码下载地址: http://download.csdn.net/detail/wei_zhi/9422590 ...
  • wei_zhi
  • wei_zhi
  • 2016-01-29 20:17
  • 11740

使用ViewPager+Fragment+RadioGroup实现类似微信主界面

其实现在很多的应用都有类似的实现,最常用的或许就是微信了吧。先来看看效果图吧 当然这里只是拿了大众点评的图片,和微信的实现功能是一样的。微博也有类似的实现,但微博的实现简单点,用Fragment+Ra...
  • u013132744
  • u013132744
  • 2015-12-14 16:09
  • 1478

滑动或点击按钮切换页面 ViewPager+RadioGroup+Fragment

???
  • Audrey_Li
  • Audrey_Li
  • 2017-10-10 20:35
  • 274

底部导航栏实现页面的切换(三):Fragment + RadioGroup + ViewPager

底部导航栏实现页面的切换(三):Fragment + RadioGroup + ViewPager知识点效果图:逻辑 布局:顶部是LinearLayout,里面放了TextView;底部是Radi...
  • ss1168805219
  • ss1168805219
  • 2016-09-08 11:35
  • 1183

Android之ViewPager+Fragment实现页面点击切换和手势滑动

使用ViewPager+Fragment实现页面点击切换和手势滑动,效果图如下: 源码下载地址: http://download.csdn.net/detail/wei_zhi/9422590 ...
  • wei_zhi
  • wei_zhi
  • 2016-01-29 20:17
  • 11740

Android ViewPager加Fragment实现滑动或者点击页面切换

1.布局文件添加android.support.v4.ViewPager <RelativeLayout xmlns:android="http://schemas.android.com/a...
  • u014732430
  • u014732430
  • 2016-08-23 18:09
  • 373

Android之ViewPager+Fragment实现页面点击切换和手势滑动

from: http://blog.csdn.net/wei_zhi/article/details/50609119 使用ViewPager+Fragment实现页面点击切换和手势...
  • birthmarkqiqi
  • birthmarkqiqi
  • 2016-11-15 19:34
  • 663

ViewPager+Fragment侧滑及点击切换页面

  • 2017-11-17 11:44
  • 1.41MB
  • 下载

[Android学习笔记]fragment配合RadioGroup实现点击切换内容

这个主要是如何替换fragment的demo。效果图如下(下面的tabhost和上面的bar不属于这次的内容,这个是我做的一个应用程序框架的一部分,有需要的或者想研究研究的可以私下联系),主要是讲解中...
  • w553000664
  • w553000664
  • 2012-08-15 15:53
  • 10340
    个人资料
    • 访问:600次
    • 积分:26
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档