Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set default page for ViewPager in Android

I am using the following code, MAX is 2 pages. By default the position is 0 and adds a new page to the right. I inflate two layout files.

How can I show the page1 when the app starts and add a new page to the left ? Thanks.

main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical" android:layout_width="fill_parent"     android:layout_height="fill_parent">       <android.support.v4.view.ViewPager         android:layout_width="wrap_content" android:layout_height="wrap_content"         android:id="@+id/pagerView" />   </LinearLayout> 

Java code

public class MyPagerActivity extends Activity {     private Context context;         private int pageNumber;      @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         context = this;          ViewPager pagerView = (ViewPager)findViewById(R.id.pagerView);         pagerView.setAdapter(new AwesomePagerAdapter());          }       private class AwesomePagerAdapter extends PagerAdapter{          @Override         public void destroyItem(View collection, int position, Object view) {             ((ViewPager) collection).removeView((View)view);                     }          @Override         public void finishUpdate(View arg0) {             //setPageTitles(getPageNumber());         }          @Override         public int getCount() {             return 2;         }          @Override         public Object instantiateItem(View collection, int position) {             /*  TextView tv = new TextView(MyPagerActivity.this);         tv.setText("Bonjour PAUG " + position);         tv.setTextColor(Color.WHITE);         tv.setTextSize(30);          ((ViewPager) collection).addView(tv,0);          return tv;*/              View view = getViewToShow(position);             ((ViewPager) collection).addView(view,0);             return view;         }          @Override         public boolean isViewFromObject(View view, Object object) {             return view==((View)object);         }          @Override         public void restoreState(Parcelable arg0, ClassLoader arg1) {             // TODO Auto-generated method stub          }          @Override         public Parcelable saveState() {             // TODO Auto-generated method stub             return null;         }          @Override         public void startUpdate(View arg0) {             // TODO Auto-generated method stub          }      }       private View getViewToShow(int position){         View view = null;         View layout;          LayoutInflater mInflater =  (LayoutInflater)         context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);          switch(position){          case 0:              layout  = mInflater.inflate(R.layout.elements, null);             view = layout;             break;         case 1: view =              layout  = mInflater.inflate(R.layout.elements2, null);         view = layout;          break;         }         return view;     }  } 
like image 810
dcanh121 Avatar asked Sep 13 '11 00:09

dcanh121


People also ask

Is ViewPager deprecated?

Technically, ViewPager is not deprecated, but the two concrete PagerAdapter implementations — FragmentPagerAdapter and FragmentStatePagerAdapter — are deprecated.

What is Androidx ViewPager widget ViewPager?

Layout manager that allows the user to flip left and right through pages of data. You supply an implementation of a PagerAdapter to generate the pages that the view shows. ViewPager is most often used in conjunction with android. app.


1 Answers

Have you tried using the setCurrentItem method?

like image 164
Cristian Avatar answered Oct 14 '22 05:10

Cristian