public class MainActivity extends Activity implements OnPageChangeListener {
private ViewPager viewPager;
private ViewGroup viewGroup;
private List<View> viewlist=new ArrayList<View>();
private MyPageAdapter myPageAdapter;
private final static int POINT_LENGTH = 3;
private final static int FRIST_ITEM_INDEX=1;
private int mCurrentPagePosition = FRIST_ITEM_INDEX;
private boolean mIsChanged=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
init();
}
private void init() {
viewPager=(ViewPager) findViewById(R.id.viewpager_test);
addTextView(2);
for(int i=0;i<3;i++){
addTextView(i);
}
addTextView(0);
myPageAdapter=new MyPageAdapter(viewlist);
viewPager.setAdapter(myPageAdapter);
viewPager.setCurrentItem(mCurrentPagePosition, false);
viewPager.setOnPageChangeListener(this);
}
private void addTextView(int i) {
TextView textView=new TextView(this);
textView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
textView.setGravity(Gravity.CENTER);
textView.setText("这是第"+(i+1)+"页面");
textView.setTextSize(50);
viewlist.add(textView);
}
public class MyPageAdapter extends PagerAdapter{
public MyPageAdapter(List<View> views) {
viewlist=views;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return viewlist.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewlist.get(position));
return viewlist.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewlist.get(position));
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
if(viewPager.SCROLL_STATE_IDLE==arg0){
if(mIsChanged){
mIsChanged=false;
viewPager.setCurrentItem(mCurrentPagePosition,false);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
Toast.makeText(getApplicationContext(), "当前页面是-----》》》"+arg0, Toast.LENGTH_LONG).show();
mIsChanged=true;
if(arg0>POINT_LENGTH){
mCurrentPagePosition=FRIST_ITEM_INDEX;
}else if(arg0<FRIST_ITEM_INDEX){
mCurrentPagePosition=POINT_LENGTH;
}else{
mCurrentPagePosition=arg0;
}
}
}