页面的点击滑动
1.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.taoge.testfragmentone.MainActivity">
<include
android:id="@+id/tabbar"
layout="@layout/tabbr_viw"/>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/tabbar"/>
</RelativeLayout>
2.java代码
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{
private ViewPager viewPager;
private MyFragmentAdapter myFragmentAdapter;
private RadioGroup group;
private RadioButton radioButton1,radioButton2,radioButton3,radioButton4,radioButton5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager =(ViewPager)findViewById(R.id.view_pager);
FragmentManager manager =getSupportFragmentManager();
myFragmentAdapter =new MyFragmentAdapter(manager);
viewPager.setAdapter(myFragmentAdapter);
viewPager.addOnPageChangeListener(this);
//预加载四个fragment,在button按钮实现点击随意切换时,可以找到其fragment的id
viewPager.setOffscreenPageLimit(4);
radioButton1 =(RadioButton)findViewById(R.id.radio_btn1);
radioButton2 =(RadioButton)findViewById(R.id.radio_btn2);
radioButton3 =(RadioButton)findViewById(R.id.radio_btn3);
radioButton4 =(RadioButton)findViewById(R.id.radio_btn4);
radioButton5 =(RadioButton)findViewById(R.id.radio_btn5);
initRadioGroup();
}
//通过按钮实现Fragment的切换
public void initRadioGroup(){
group =(RadioGroup)findViewById(R.id.radio_group);
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.radio_btn1:
viewPager.setCurrentItem(0,false);
break;
case R.id.radio_btn2:
viewPager.setCurrentItem(1,false);
break;
case R.id.radio_btn3:
viewPager.setCurrentItem(2,false);
break;
case R.id.radio_btn4:
viewPager.setCurrentItem(3,false);
break;
case R.id.radio_btn5:
viewPager.setCurrentItem(4,false);
break;
}
}
});
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
//通过滑动Fragment实现button的跳转
//state有三种状态:0是什么都没做;1是正在滑动;2是滑动完毕
if (state ==2){
switch (viewPager.getCurrentItem()){
case 0:
radioButton1.setChecked(true);
break;
case 1:
radioButton2.setChecked(true);
break;
case 2:
radioButton3.setChecked(true);
break;
case 3:
radioButton4.setChecked(true);
break;
case 4:
radioButton5.setChecked(true);
break;
}
}
}
}
3.适配器:
public class MyFragmentAdapter extends FragmentPagerAdapter {
private final int PAGE_COUNT =5;
private Fragment_one fragment_one;
private Fragment_two fragment_two;
private Fragment_three fragment_three;
private Fragment_four fragment_four;
private Fragment_five fragment_five;
public MyFragmentAdapter(FragmentManager fm) {
super(fm);
fragment_one =new Fragment_one();
fragment_two =new Fragment_two();
fragment_three =new Fragment_three();
fragment_four =new Fragment_four();
fragment_five =new Fragment_five();
}
@Override
public Fragment getItem(int position) {
Fragment fragment =null;
switch (position){
case 0:
fragment =fragment_one;
break;
case 1:
fragment =fragment_two;
break;
case 2:
fragment =fragment_three;
break;
case 3:
fragment =fragment_four;
break;
case 4:
fragment =fragment_five;
break;
}
return fragment;
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
}
}