Slide show in android viewpager?

I have a problem with a slide show in android viewpager. I want to show the layout of the viewpager after a minimum period of time. Here is my sample code. My main class:

public class MainActivity extends Activity { private ViewPager mViewPager; private SwipeAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mViewPager = (ViewPager) findViewById(R.id.pager); // set the adapter adapter = new SwipeAdapter(MainActivity.this); mViewPager.setAdapter(adapter); mViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } } 

My Adapter Class:

 public class SwipeAdapter extends PagerAdapter { private LayoutInflater mInflater; private static int[] mLayouts = { R.layout.view_layout1, R.layout.view_layout2, R.layout.view_layout3, R.layout.view_layout4 }; SwipeAdapter(Context context) { mInflater = LayoutInflater.from(context); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { ViewGroup pageView = (ViewGroup) mInflater.inflate(mLayouts[position], container, false); container.addView(pageView); getItemPosition(pageView); return pageView; } @Override public int getCount() { return mLayouts.length; } @Override public boolean isViewFromObject(View view, Object obj) { return view == obj; } } 

Suppose I want the viewpager layout to automatically shift after 10 seconds. How is this possible.

+8
android android-viewpager
source share
2 answers

Use the Handler to make it slide automatically. Here is the code

 private Handler handler = new Handler(); private Runnable runnable = new Runnable() { public void run() { if( position >= 4){ position = 0; }else{ position = position+1; } toBarPager.setCurrentItem(position, true); handler.postDelayed(runnable, 10000); } }; 

And don't forget to remove the onPause()

 @Override public void onPause() { super.onPause(); if (handler!= null) { handler.removeCallbacks(runnable); } } 

Also, don't forget to restart onResume()

 @Override public void onResume() { super.onResume(); // Always call the superclass method first handler.postDelayed(runnable, 10000); } 
+28
source share

use Handler and send [Empty] MessageDelayed / postDelayed and call setCurrentItem on your ViewPager

+1
source share

All Articles