List of usage examples for android.support.v4.view ViewPager SCROLL_STATE_IDLE
int SCROLL_STATE_IDLE
To view the source code for android.support.v4.view ViewPager SCROLL_STATE_IDLE.
Click Source Link
From source file:com.yahala.ui.IntroActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.intro_layout); if (LocaleController.isRTL) { icons = new int[] { // R.drawable.intro7, // R.drawable.intro6, // R.drawable.intro5, // R.drawable.intro4, // R.drawable.intro3, //R.drawable.intro2, R.drawable.intro1 };/*from www. j av a 2 s .c o m*/ titles = new int[] { // R.string.Page7Title, // R.string.Page6Title, // R.string.Page5Title, // R.string.Page4Title, // R.string.Page3Title, // R.string.Page2Title, R.string.Page1Title }; messages = new int[] { // R.string.Page7Message, // R.string.Page6Message, // R.string.Page5Message, // R.string.Page4Message, // R.string.Page3Message, // R.string.Page2Message, R.string.Page1Message }; } else { icons = new int[] { R.drawable.intro1, // R.drawable.intro2, // R.drawable.intro3, // R.drawable.intro4, // R.drawable.intro5, // R.drawable.intro6, // R.drawable.intro7 }; titles = new int[] { R.string.Page1Title, // R.string.Page2Title, // R.string.Page3Title, // R.string.Page4Title, // R.string.Page5Title, // R.string.Page6Title, // R.string.Page7Title }; messages = new int[] { R.string.Page1Message, // R.string.Page2Message, // R.string.Page3Message, // R.string.Page4Message, // R.string.Page5Message, // R.string.Page6Message, // R.string.Page7Message }; } viewPager = (ViewPager) findViewById(R.id.intro_view_pager); TextView startMessagingButton = (TextView) findViewById(R.id.start_messaging_button); startMessagingButton.setText(LocaleController.getString("StartMessaging", R.string.StartMessaging)); topImage1 = (ImageView) findViewById(R.id.icon_image1); topImage2 = (ImageView) findViewById(R.id.icon_image2); bottomPages = (ViewGroup) findViewById(R.id.bottom_pages); topImage2.setVisibility(View.GONE); viewPager.setAdapter(new IntroAdapter()); viewPager.setPageMargin(0); viewPager.setOffscreenPageLimit(1); viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int i) { } @Override public void onPageScrollStateChanged(int i) { if (i == ViewPager.SCROLL_STATE_IDLE || i == ViewPager.SCROLL_STATE_SETTLING) { if (lastPage != viewPager.getCurrentItem()) { lastPage = viewPager.getCurrentItem(); final ImageView fadeoutImage; final ImageView fadeinImage; if (topImage1.getVisibility() == View.VISIBLE) { fadeoutImage = topImage1; fadeinImage = topImage2; } else { fadeoutImage = topImage2; fadeinImage = topImage1; } fadeinImage.bringToFront(); fadeinImage.setImageResource(icons[lastPage]); fadeinImage.clearAnimation(); fadeoutImage.clearAnimation(); Animation outAnimation = AnimationUtils.loadAnimation(IntroActivity.this, R.anim.icon_anim_fade_out); outAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { fadeoutImage.setVisibility(View.GONE); } @Override public void onAnimationRepeat(Animation animation) { } }); Animation inAnimation = AnimationUtils.loadAnimation(IntroActivity.this, R.anim.icon_anim_fade_in); inAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { fadeinImage.setVisibility(View.VISIBLE); } @Override public void onAnimationEnd(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } }); fadeoutImage.startAnimation(outAnimation); fadeinImage.startAnimation(inAnimation); } } } }); startMessagingButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (startPressed) { return; } startPressed = true; Intent intent2 = new Intent(IntroActivity.this, LoginActivity.class); startActivity(intent2); finish(); } }); justCreated = true; // getSupportActionBar().hide(); }
From source file:com.calgen.udacity.lego.ui.ArticleDetailActivity.java
@Override public void onPageScrollStateChanged(int state) { if (upCaret == null) return;/*from w w w . ja va 2 s . co m*/ upCaret.animate().alpha(state == ViewPager.SCROLL_STATE_IDLE ? 1f : 0f).setDuration(300); }
From source file:components.infiniteviewpager.view.InfiniteViewPager.java
private void initInfiniteViewPager() { setCurrentItem(PAGE_POSITION_CENTER); //setOnPageChangeListener(new OnPageChangeListener() { addOnPageChangeListener(new OnPageChangeListener() { @Override/* w ww .j av a 2 s . com*/ public void onPageScrolled(int i, float positionOffset, int positionOffsetPixels) { if (mListener != null && getAdapter() != null) { final InfinitePagerAdapter adapter = (InfinitePagerAdapter) getAdapter(); mListener.onPageScrolled(adapter.getCurrentIndicator(), positionOffset, positionOffsetPixels); } } @Override public void onPageSelected(int position) { mCurrPosition = position; if (Constants.DEBUG) { Log.d(TAG, "on page " + position); } if (mListener != null && getAdapter() != null) { final InfinitePagerAdapter adapter = (InfinitePagerAdapter) getAdapter(); mListener.onPageSelected(adapter.getCurrentIndicator()); } } @Override public void onPageScrollStateChanged(final int state) { if (mListener != null) { mListener.onPageScrollStateChanged(state); } final InfinitePagerAdapter adapter = (InfinitePagerAdapter) getAdapter(); if (adapter == null) { return; } if (state == ViewPager.SCROLL_STATE_IDLE) { if (mCurrPosition == PAGE_POSITION_LEFT) { adapter.movePageContents(PAGE_POSITION_CENTER, PAGE_POSITION_RIGHT); adapter.movePageContents(PAGE_POSITION_LEFT, PAGE_POSITION_CENTER); adapter.setCurrentIndicator(adapter.getPreviousIndicator()); adapter.fillPage(PAGE_POSITION_LEFT); } else if (mCurrPosition == PAGE_POSITION_RIGHT) { adapter.movePageContents(PAGE_POSITION_CENTER, PAGE_POSITION_LEFT); adapter.movePageContents(PAGE_POSITION_RIGHT, PAGE_POSITION_CENTER); adapter.setCurrentIndicator(adapter.getNextIndicator()); adapter.fillPage(PAGE_POSITION_RIGHT); } setCurrentItem(PAGE_POSITION_CENTER, false); } } }); }
From source file:com.permify.yoprefiero.InfinitePagerAdapter.view.InfiniteViewPager.java
private void initInfiniteViewPager() { setCurrentItem(PAGE_POSITION_CENTER); setOnPageChangeListener(new OnPageChangeListener() { @Override/*from www . j a va 2 s . com*/ public void onPageScrolled(int i, float positionOffset, int positionOffsetPixels) { if (mListener != null && getAdapter() != null) { final InfinitePagerAdapter adapter = (InfinitePagerAdapter) getAdapter(); mListener.onPageScrolled(adapter.getCurrentIndicator(), positionOffset, positionOffsetPixels); } } @Override public void onPageSelected(int position) { mCurrPosition = position; if (Constants.DEBUG) { Log.d(TAG, "on page " + position); } if (mListener != null && getAdapter() != null) { final InfinitePagerAdapter adapter = (InfinitePagerAdapter) getAdapter(); mListener.onPageSelected(adapter.getCurrentIndicator()); } } @Override public void onPageScrollStateChanged(final int state) { if (mListener != null) { mListener.onPageScrollStateChanged(state); } final InfinitePagerAdapter adapter = (InfinitePagerAdapter) getAdapter(); if (adapter == null) { return; } if (state == ViewPager.SCROLL_STATE_IDLE) { if (mCurrPosition == PAGE_POSITION_LEFT) { adapter.movePageContents(PAGE_POSITION_CENTER, PAGE_POSITION_RIGHT); adapter.movePageContents(PAGE_POSITION_LEFT, PAGE_POSITION_CENTER); adapter.setCurrentIndicator(adapter.getPreviousIndicator()); adapter.fillPage(PAGE_POSITION_LEFT); } else if (mCurrPosition == PAGE_POSITION_RIGHT) { adapter.movePageContents(PAGE_POSITION_CENTER, PAGE_POSITION_LEFT); adapter.movePageContents(PAGE_POSITION_RIGHT, PAGE_POSITION_CENTER); adapter.setCurrentIndicator(adapter.getNextIndicator()); adapter.fillPage(PAGE_POSITION_RIGHT); } setCurrentItem(PAGE_POSITION_CENTER, false); } } }); }
From source file:dg.shenm233.mmaps.ui.OfflineMapActivity.java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_offline_map); mMainContentVG = (ViewGroup) findViewById(R.id.main_content); TabLayout tabLayout = (TabLayout) findViewById(R.id.offline_tab); ViewPager viewPager = (ViewPager) findViewById(R.id.offline_viewpager); ViewPagerAdapter pagerAdapter = new ViewPagerAdapter(); pagerAdapter.add(mDownloadListPager = new DownloadListPager(this)); pagerAdapter.add(mCityListPager = new CityListPager(this)); viewPager.setAdapter(pagerAdapter);//from ww w. j a v a 2 s .co m tabLayout.setupWithViewPager(viewPager); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { private int mPosition = -1; private boolean isAnimating = false; @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { // if (isAnimating) { mPosition = position; // ?position return; } // ??? if (position == 0) { refreshDownloadList(); } } @Override public void onPageScrollStateChanged(int state) { isAnimating = state != ViewPager.SCROLL_STATE_IDLE; onPageSelected(mPosition); // ????onPageSelected() } }); pagerAdapter.notifyDataSetChanged(); }
From source file:ch.epfl.sweng.evento.gui.infinite_pager_adapter.InfiniteViewPager.java
private void initInfiniteViewPager() { setCurrentItem(PAGE_POSITION_CENTER); clearOnPageChangeListeners();// w w w . jav a 2s. c om addOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageScrolled(int i, float positionOffset, int positionOffsetPixels) { if (mListener != null && getAdapter() != null) { final InfinitePagerAdapter adapter = (InfinitePagerAdapter) getAdapter(); mListener.onPageScrolled(adapter.getCurrentIndicator(), positionOffset, positionOffsetPixels); } } @Override public void onPageSelected(int position) { mCurrPosition = position; if (Constants.DEBUG) { Log.d(TAG, "on page " + position); } if (mListener != null && getAdapter() != null) { final InfinitePagerAdapter adapter = (InfinitePagerAdapter) getAdapter(); mListener.onPageSelected(adapter.getCurrentIndicator()); } } @Override public void onPageScrollStateChanged(final int state) { if (mListener != null) { mListener.onPageScrollStateChanged(state); } final InfinitePagerAdapter adapter = (InfinitePagerAdapter) getAdapter(); if (adapter == null) { return; } if (state == ViewPager.SCROLL_STATE_IDLE) { if (mCurrPosition == PAGE_POSITION_LEFT) { adapter.movePageContents(PAGE_POSITION_CENTER, PAGE_POSITION_RIGHT); adapter.movePageContents(PAGE_POSITION_LEFT, PAGE_POSITION_CENTER); adapter.setCurrentIndicator(adapter.getPreviousIndicator()); adapter.fillPage(PAGE_POSITION_LEFT); } else if (mCurrPosition == PAGE_POSITION_RIGHT) { adapter.movePageContents(PAGE_POSITION_CENTER, PAGE_POSITION_LEFT); adapter.movePageContents(PAGE_POSITION_RIGHT, PAGE_POSITION_CENTER); adapter.setCurrentIndicator(adapter.getNextIndicator()); adapter.fillPage(PAGE_POSITION_RIGHT); } setCurrentItem(PAGE_POSITION_CENTER, false); } } }); }
From source file:com.negaheno.ui.IntroActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.Theme_TMessages);/*ww w .j av a 2s .c o m*/ super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); if (AndroidUtilities.isTablet()) { setContentView(R.layout.intro_layout_tablet); } else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.intro_layout); } if (LocaleController.isRTL) { icons = new int[] { R.drawable.intro7, R.drawable.intro6, R.drawable.intro5, R.drawable.intro4, R.drawable.intro3, R.drawable.intro2, R.drawable.intro1 }; titles = new int[] { R.string.Page7Title, R.string.Page6Title, R.string.Page5Title, R.string.Page4Title, R.string.Page3Title, R.string.Page2Title, R.string.Page1Title }; messages = new int[] { R.string.Page7Message, R.string.Page6Message, R.string.Page5Message, R.string.Page4Message, R.string.Page3Message, R.string.Page2Message, R.string.Page1Message }; } else { icons = new int[] { R.drawable.intro1, R.drawable.intro2, R.drawable.intro3, R.drawable.intro4, R.drawable.intro5, R.drawable.intro6, R.drawable.intro7 }; titles = new int[] { R.string.Page1Title, R.string.Page2Title, R.string.Page3Title, R.string.Page4Title, R.string.Page5Title, R.string.Page6Title, R.string.Page7Title }; messages = new int[] { R.string.Page1Message, R.string.Page2Message, R.string.Page3Message, R.string.Page4Message, R.string.Page5Message, R.string.Page6Message, R.string.Page7Message }; } viewPager = (ViewPager) findViewById(R.id.intro_view_pager); TextView startMessagingButton = (TextView) findViewById(R.id.start_messaging_button); startMessagingButton .setText(LocaleController.getString("StartMessaging", R.string.StartMessaging).toUpperCase()); if (Build.VERSION.SDK_INT >= 21) { StateListAnimator animator = new StateListAnimator(); animator.addState(new int[] { android.R.attr.state_pressed }, ObjectAnimator .ofFloat(startMessagingButton, "translationZ", AndroidUtilities.dp(2), AndroidUtilities.dp(4)) .setDuration(200)); animator.addState(new int[] {}, ObjectAnimator .ofFloat(startMessagingButton, "translationZ", AndroidUtilities.dp(4), AndroidUtilities.dp(2)) .setDuration(200)); startMessagingButton.setStateListAnimator(animator); } topImage1 = (ImageView) findViewById(R.id.icon_image1); topImage2 = (ImageView) findViewById(R.id.icon_image2); bottomPages = (ViewGroup) findViewById(R.id.bottom_pages); topImage2.setVisibility(View.GONE); viewPager.setAdapter(new IntroAdapter()); viewPager.setPageMargin(0); viewPager.setOffscreenPageLimit(1); viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int i) { } @Override public void onPageScrollStateChanged(int i) { if (i == ViewPager.SCROLL_STATE_IDLE || i == ViewPager.SCROLL_STATE_SETTLING) { if (lastPage != viewPager.getCurrentItem()) { lastPage = viewPager.getCurrentItem(); final ImageView fadeoutImage; final ImageView fadeinImage; if (topImage1.getVisibility() == View.VISIBLE) { fadeoutImage = topImage1; fadeinImage = topImage2; } else { fadeoutImage = topImage2; fadeinImage = topImage1; } fadeinImage.bringToFront(); fadeinImage.setImageResource(icons[lastPage]); fadeinImage.clearAnimation(); fadeoutImage.clearAnimation(); Animation outAnimation = AnimationUtils.loadAnimation(IntroActivity.this, R.anim.icon_anim_fade_out); outAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { fadeoutImage.setVisibility(View.GONE); } @Override public void onAnimationRepeat(Animation animation) { } }); Animation inAnimation = AnimationUtils.loadAnimation(IntroActivity.this, R.anim.icon_anim_fade_in); inAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { fadeinImage.setVisibility(View.VISIBLE); } @Override public void onAnimationEnd(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } }); fadeoutImage.startAnimation(outAnimation); fadeinImage.startAnimation(inAnimation); } } } }); startMessagingButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (startPressed) { return; } startPressed = true; Intent intent2 = new Intent(IntroActivity.this, LaunchActivity.class); intent2.putExtra("fromIntro", true); startActivity(intent2); finish(); } }); justCreated = true; }
From source file:com.panahit.ui.IntroActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.Theme_TMessages);//www .j av a2 s .c o m super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); if (AndroidUtilities.isTablet()) { setContentView(R.layout.intro_layout_tablet); } else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.intro_layout); } if (LocaleController.isRTL) { icons = new int[] { R.drawable.intro7, R.drawable.intro6, R.drawable.intro5, R.drawable.intro4, R.drawable.intro3, R.drawable.intro2, R.drawable.intro1 }; titles = new int[] { R.string.Page7Title, R.string.Page6Title, R.string.Page5Title, R.string.Page4Title, R.string.Page3Title, R.string.Page2Title, R.string.Page1Title }; messages = new int[] { R.string.Page7Message, R.string.Page6Message, R.string.Page5Message, R.string.Page4Message, R.string.Page3Message, R.string.Page2Message, R.string.Page1Message }; } else { icons = new int[] { R.drawable.intro1, R.drawable.intro2, R.drawable.intro3, R.drawable.intro4, R.drawable.intro5, R.drawable.intro6, R.drawable.intro7 }; titles = new int[] { R.string.Page1Title, R.string.Page2Title, R.string.Page3Title, R.string.Page4Title, R.string.Page5Title, R.string.Page6Title, R.string.Page7Title }; messages = new int[] { R.string.Page1Message, R.string.Page2Message, R.string.Page3Message, R.string.Page4Message, R.string.Page5Message, R.string.Page6Message, R.string.Page7Message }; } viewPager = (ViewPager) findViewById(R.id.intro_view_pager); TextView startMessagingButton = (TextView) findViewById(R.id.start_messaging_button); startMessagingButton .setText(LocaleController.getString("StartMessaging", R.string.StartMessaging).toUpperCase()); if (Build.VERSION.SDK_INT >= 21) { StateListAnimator animator = new StateListAnimator(); animator.addState(new int[] { android.R.attr.state_pressed }, ObjectAnimator .ofFloat(startMessagingButton, "translationZ", AndroidUtilities.dp(2), AndroidUtilities.dp(4)) .setDuration(200)); animator.addState(new int[] {}, ObjectAnimator .ofFloat(startMessagingButton, "translationZ", AndroidUtilities.dp(4), AndroidUtilities.dp(2)) .setDuration(200)); startMessagingButton.setStateListAnimator(animator); } topImage1 = (ImageView) findViewById(R.id.icon_image1); topImage2 = (ImageView) findViewById(R.id.icon_image2); bottomPages = (ViewGroup) findViewById(R.id.bottom_pages); topImage2.setVisibility(View.GONE); viewPager.setAdapter(new IntroAdapter()); viewPager.setPageMargin(0); viewPager.setOffscreenPageLimit(1); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int i) { } @Override public void onPageScrollStateChanged(int i) { if (i == ViewPager.SCROLL_STATE_IDLE || i == ViewPager.SCROLL_STATE_SETTLING) { if (lastPage != viewPager.getCurrentItem()) { lastPage = viewPager.getCurrentItem(); final ImageView fadeoutImage; final ImageView fadeinImage; if (topImage1.getVisibility() == View.VISIBLE) { fadeoutImage = topImage1; fadeinImage = topImage2; } else { fadeoutImage = topImage2; fadeinImage = topImage1; } fadeinImage.bringToFront(); fadeinImage.setImageResource(icons[lastPage]); fadeinImage.clearAnimation(); fadeoutImage.clearAnimation(); Animation outAnimation = AnimationUtils.loadAnimation(IntroActivity.this, R.anim.icon_anim_fade_out); outAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { fadeoutImage.setVisibility(View.GONE); } @Override public void onAnimationRepeat(Animation animation) { } }); Animation inAnimation = AnimationUtils.loadAnimation(IntroActivity.this, R.anim.icon_anim_fade_in); inAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { fadeinImage.setVisibility(View.VISIBLE); } @Override public void onAnimationEnd(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } }); fadeoutImage.startAnimation(outAnimation); fadeinImage.startAnimation(inAnimation); } } } }); startMessagingButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (startPressed) { return; } startPressed = true; Intent intent2 = new Intent(IntroActivity.this, LaunchActivity.class); intent2.putExtra("fromIntro", true); startActivity(intent2); finish(); } }); if (BuildVars.DEBUG_VERSION) { startMessagingButton.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { ConnectionsManager.getInstance().switchBackend(); return true; } }); } justCreated = true; }
From source file:am.widget.tabstrip.TabStripHelper.java
void bindViewPager(ViewPager pager) { if (mPager == pager) return;//from w w w. j a va 2 s . c o m boolean update = false; if (mPager != null) { onDetachedFromViewPager(mPager); update = true; } mPager = pager; if (mPager != null) { onAttachedToViewPager(mPager); update = false; } if (update && mScrollState == ViewPager.SCROLL_STATE_IDLE) updateView(true); }
From source file:com.jungle.widgets.view.JungleLanternView.java
private void initLayout(Context context, AttributeSet attrs) { View.inflate(context, R.layout.layout_lantern_view, this); mAdapter = new ViewPagerAdapter(); mViewPager = (FixedSpeedViewPager) findViewById(R.id.lantern_view_pager); mViewPager.setAdapter(mAdapter);//from w ww .j av a2 s .c o m mViewPager.setSetItemListener(new FixedSpeedViewPager.OnSetItemListener() { @Override public void onSetNewItem() { scheduleLanternSwitch(); } }); if (attrs != null) { TypedArray arr = context.obtainStyledAttributes(attrs, R.styleable.JungleLanternView); mAutoSwitch = arr.getBoolean(R.styleable.JungleLanternView_autoScroll, mAutoSwitch); mSwitchIntervalMs = arr.getInteger(R.styleable.JungleLanternView_switchIntervalMs, mSwitchIntervalMs); arr.recycle(); } mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (mPageChangeListener != null) { mPageChangeListener.onPageScrolled(position, positionOffset, positionOffsetPixels); } } @Override public void onPageSelected(int position) { if (!mAdapter.isNeedExtraItem()) { mIndicator.setCurrSeledIndex(position); if (mPageChangeListener != null) { mPageChangeListener.onPageSelected(position); } return; } int index = 0; int rawCount = mAdapter.getRawCount(); if (position == rawCount + 1) { index = 0; } else if (position == 0) { index = rawCount - 1; } else { index = position - 1; } mIndicator.setCurrSeledIndex(index); mViewPager.setScrollDurationFactor(1); if (mPageChangeListener != null) { mPageChangeListener.onPageSelected(index); } } @Override public void onPageScrollStateChanged(int state) { if (mPageChangeListener != null) { mPageChangeListener.onPageScrollStateChanged(state); } if (!mAdapter.isNeedExtraItem()) { return; } if (state == ViewPager.SCROLL_STATE_IDLE) { int rawCount = mAdapter.getRawCount(); int currItemIndex = mViewPager.getCurrentItem(); if (currItemIndex == rawCount + 1) { mViewPager.setCurrentItemManual(1, false); } else if (currItemIndex == 0) { mViewPager.setCurrentItemManual(rawCount, false); } } } }); if (context instanceof BaseActivity) { BaseActivity activity = (BaseActivity) context; activity.addLifeCycleListener(mLifeCycleListener); } }