1.xml布局
<?xml version="1.0" encoding="utf-8"?> <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="com.example.work412.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/page" android:layout_width="match_parent" android:layout_weight="9" android:layout_height="0dp"> </android.support.v4.view.ViewPager> <RadioGroup android:id="@+id/radios" android:layout_width="match_parent" android:layout_weight="1" android:orientation="horizontal" android:layout_height="0dp"> <RadioButton android:id="@+id/but01" android:layout_width="match_parent" android:layout_height="match_parent" android:text="生活" android:button="@null" android:layout_weight="1" android:gravity="center" android:checked="true" android:background="@drawable/selector" /> <RadioButton android:id="@+id/but02" android:layout_width="match_parent" android:layout_height="match_parent" android:text="娱乐" android:button="@null" android:layout_weight="1" android:gravity="center" android:background="@drawable/selector" /> </RadioGroup> </LinearLayout>
2.MainActivity
private ViewPager viewPager; private List<Fragment> list; private RadioGroup radioGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager=findViewById(R.id.page); radioGroup=findViewById(R.id.radios); list=new ArrayList<Fragment>(); list.add(new Fragment01()); list.add(new Fragment02()); //设置view pager的适配器 viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { //集合的下标 @Override public Fragment getItem(int position) { return list.get(position); } //返回集合数量 @Override public int getCount() { return list.size(); } }); //点击进行切换 radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (i){ case R.id.but01: //viewPager切换需要用setCurrentItem()参数是下标 viewPager.setCurrentItem(0); break; case R.id.but02: viewPager.setCurrentItem(1); break; } } }); //viewPager的滑动监听事件 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } //选中的 @Override public void onPageSelected(int position) { switch (position){ //根据下标 case 0: //滑动切换的时候radiofroup也变化.check()参数是id radioGroup.check(R.id.but01); break; case 1: radioGroup.check(R.id.but02); break; } } @Override public void onPageScrollStateChanged(int state) { } }); }