Android Fragment滑动组件ViewPager的实例详解
1适配器FragmentPagerAdapter的实现
对于FragmentPagerAdapter的派生类,只需要重写getItem(int)和getCount()就可以了。
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private List list;
public MyFragmentPagerAdapter(FragmentManager fm, List list) {
super(fm);
this.list = list;
}
//返回了当前要滑动的View的个数
@Override
public int getCount() {
return list.size();
}
//在getItem(int arg0)中,根据传来的参数arg0,来返回当前要显示的fragment
@Override
public Fragment getItem(int arg0) {
return list.get(arg0);
}
}
2两个Fragment类
OrderFragment.java
public class OrderFragment extends Fragment {
//在onCreateView()中返回要显示的View
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view= inflater.inflate(R.layout.fragment_order, container, false);
//View中控件的操作方法
refresh = view.findViewById(R.id.order_count_refresh);
refresh.setonClickListener(new onClickListener() {
@Override
public void onClick(View v) {
//操作逻辑
countStatus();
}
});
return view;
}
}
fragment_order.xml
MeFragment.java
public class MeFragment extends Fragment {
//在onCreateView()中返回要显示的View
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view= inflater.inflate(R.layout.fragment_me, container, false);
//View中控件的操作方法
login = view.findViewById(R.id.me_login);
login.setonClickListener(new onClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MeFragment.this.getActivity(),
LoginActivity.class));
}
});
return view;
}
}
fragment_me.xml
3主activity实现
public class MainActivity extends FragmentActivity {
private ViewPager mPager;
private List fragmentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPager = (ViewPager) findViewById(R.id.viewpager);
//初始化fragment
List fragmentList=new ArrayList();
fragmentList.add(new OrderFragment());
fragmentList.add(new MeFragment());
FragAdapter adapter = new FragAdapter(getSupportFragmentManager(), fragments);
//给ViewPager设置适配器
mPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentList));
mPager.setCurrentItem(0);// 设置当前显示标签页为第一页
//MyonPageChangeListener()是页面变化监听器
mPager.setonPageChangeListener(new MyonPageChangeListener());
radioGroup = (RadioGroup) findViewById(R.id.main_tab);
//给radioGroup设置监听器
radioGroup.setonCheckedChangeListener(new RadioGroup.onCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == R.id.tab_me){
mPager.setCurrentItem(INDEX_ME);
}else if(checkedId == R.id.tab_shoujian){
mPager.setCurrentItem(INDEX_SHOUJIAN);
}
}
});
}
//实现页面变化监听器onPageChangeListener
public class MyonPageChangeListener implements onPageChangeListener {
@Override
//当页面在滑动的时候会调用此方法,在滑动被停止之前,此方法会一直得到调用。
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
//当页面状态改变的时候调用
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
//页面跳转完后调用此方法
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
switch (arg0) {
case INDEX_ME:
radioGroup.check(R.id.tab_me);
break;
case INDEX_SHOUJIAN:
radioGroup.check(R.id.tab_shoujian);
break;
}
}
}
}
activity_main.xml
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!



