ViewPager+Fragment+radioGroup联动效果

public class MainActivity extends FragmentActivity {

ViewPager viewPager;
RadioGroup radioGroup;
ArrayList<Fragment> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
//获取控件
    viewPager = findViewById(R.id.viewPager);
    radioGroup = findViewById(R.id.radioGroup);
    list = new ArrayList<Fragment>();
    
//添加fragment
    list.add(new FRag_01());
    list.add(new FRag_02());
    list.add(new FRag_03());

    //viewPager+fragment适配器
    viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
        @Override
        public Fragment getItem(int i) {
            return list.get(i);
        }

        @Override
        public int getCount() {
        //条目数
            return list.size();
        }
    });


    //设置联动   用两个监听互相选中
    
// radioGroup监听
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
        //判断选中的 radioButton和对应的fragment
            switch (checkedId) {
                case R.id.rbtn1:
                    viewPager.setCurrentItem(0);
                    break;
                case R.id.rbtn2:
                    viewPager.setCurrentItem(1);
                    break;
                case R.id.rbtn3:
                    viewPager.setCurrentItem(2);
                    break;
            }
        }
    });

//viewPager监听
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i1) {
        }
        @Override
        public void onPageSelected(int i) {
            switch (i) {
                case 0:
                    radioGroup.check(R.id.rbtn1);
                    break;
                case 1:
                    radioGroup.check(R.id.rbtn2);
                    break;
                case 2:
                    radioGroup.check(R.id.rbtn3);
                    break;
            }
        }

        @Override
        public void onPageScrollStateChanged(int i) {
        }
    });
}

}

//布局
<?xml version="1.0" encoding="utf-8"?>

<android.widget.LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android
xmlns:app=“http://schemas.android.com/apk/res-auto
xmlns:tools=“http://schemas.android.com/tools
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”
tools:context=".MainActivity">

<android.support.v4.view.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="10"/>

<RadioGroup
    android:id="@+id/radioGroup"
    android:layout_width="match_parent"
    android:layout_weight="1"
    android:orientation="horizontal"
    android:layout_height="0dp">

    <RadioButton
        android:id="@+id/rbtn1"
        android:layout_width="0dp"
        android:layout_weight="2"
        android:button="@null"
        android:gravity="center"
        android:checked="true"
        android:padding="2dp"
        android:background="@drawable/sele"
        android:layout_height="match_parent"
        android:text="首页"/>

    <RadioButton
        android:id="@+id/rbtn2"
        android:layout_width="0dp"
        android:layout_weight="2"
        android:button="@null"
        android:gravity="center"
        android:padding="2dp"
        android:background="@drawable/sele"
        android:layout_height="match_parent"
        android:text="数据"/>

    <RadioButton
        android:id="@+id/rbtn3"
        android:layout_width="0dp"
        android:layout_weight="2"
        android:padding="2dp"
        android:button="@null"
        android:gravity="center"
        android:background="@drawable/sele"
        android:layout_height="match_parent"
        android:text="列表"/>

</RadioGroup>

</android.widget.LinearLayout>

//联动变色在drawable中创建selector.xml

在这里插入图片描述
//再创建Button两个样式对应selector选中的样式
在这里插入图片描述
在这里插入图片描述

这样就可以实现联动变色效果了

猜你喜欢

转载自blog.csdn.net/qq_43567217/article/details/83684352