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选中的样式
这样就可以实现联动变色效果了