闲言少叙,直接上干货
如果使用eclipse开发的需要手动填写viewpager的包名,用studio则不会,布局文件中会自动提示出来的
v-4中的控件在布局文件中加入头标签
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
适配数据时候
class MyAdapter extends PagerAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return pagers.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
// TODO Auto-generated method stub
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
//根据position返回对应的xml文件,返回对象
BasePager basePager = pagers.get(position);
//添加布局
container.addView(basePager.rootView);
//更新界面
basePager.initData();
return basePager.rootView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
比较重要几个事件类型
class MyPageChangeListener implements OnPageChangeListener{
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
//选中某一页更新界面;
pagers.get(arg0).initData();
}
}
class MyOnCheckedChangeListener implements OnCheckedChangeListener {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.rb_home:
vp_pagers.setCurrentItem(0,false);
break;
case R.id.rb_order:
vp_pagers.setCurrentItem(1,false);
break;
case R.id.rb_me:
vp_pagers.setCurrentItem(2,false);
break;
case R.id.rb_more:
vp_pagers.setCurrentItem(3,false);
break;
}
}
}