ViewPager滑动换色

来源:互联网 发布:android wear源码下载 编辑:程序博客网 时间:2024/05/16 14:18

一.

ate void initView() {
        vp = (ViewPager) findViewById(R.id.vp);
        radio = (RadioGroup) findViewById(R.id.radio);
        radiobrn1 = (RadioButton) findViewById(R.id.radiobtn1);
        radiobrn2 = (RadioButton) findViewById(R.id.radiobtn2);
        text1 = (TextView) findViewById(R.id.text1);
        text2 = (TextView) findViewById(R.id.text2);
        radioButtons = new ArrayList<>();
        radioButtons.add(radiobrn1);
        radioButtons.add(radiobrn2);
        text1.setVisibility(View.VISIBLE);
        text2.setVisibility(View.INVISIBLE);




  fragments = new ArrayList<>();

        fragments.add(new VideoFragment());
        fragments.add(new CommentListFragment());
        MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager());
        vp.setAdapter(myAdapter);
        //对viewPager添加监听事件
        vp.addOnPageChangeListener(new pageChangeListener());
        //给radioGroup设置监听
        radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
                for (int j = 0; j < radioButtons.size(); j++) {
                    int id = radio.getChildAt(j).getId();
                    if (id == i) {
                        vp.setCurrentItem(j);
                    }
                }
            }

        });

class pageChangeListener implements ViewPager.OnPageChangeListener {

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            switch (position) {
                case 0:
                    radio.check(R.id.radiobtn1);
                    text1.setVisibility(View.VISIBLE);
                    text2.setVisibility(View.INVISIBLE);
                    break;
                case 1:
                    radio.check(R.id.radiobtn2);
                    text1.setVisibility(View.INVISIBLE);
                    text2.setVisibility(View.VISIBLE);
                    break;
            }
            for (int i = 0; i < radioButtons.size(); i++) {
                RadioButton radioButton = radioButtons.get(i);
                if (i == position) {
                    radioButton.setTextColor(Color.GREEN);
                } else {
                    radioButton.setTextColor(Color.GREEN);
                }
            }
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    }




 private class MyAdapter extends FragmentPagerAdapter {
        public MyAdapter(FragmentManager supportFragmentManager) {
            super(supportFragmentManager);
        }

        @Override
        public Fragment getItem(int position) {
            return fragments.get(position);
        }

        @Override
        public int getCount() {
            return fragments.size();
        }
    }


原创粉丝点击