Inflate new layout xml for each view - instantiateItem in PagerAdapter

15,407

Check out this link for a good tutorial on how to put it all together. Basically the idea is that you have to add the newly inflated view to the ViewPager collection:

View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
Share:
15,407

Related videos on Youtube

Wesley
Author by

Wesley

An artist with geeky fingers. I just build stuffs. Catch me up at twitter

Updated on September 15, 2022

Comments

  • Wesley
    Wesley over 1 year

    So basically i want to populate the pages inside ViewPager with separate XML layouts for each view position. I'm currently doing this by

    @Override
        public Object instantiateItem(View container, int position) {
    
            LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(mContext.LAYOUT_INFLATER_SERVICE);
    
            if(position == 0){
            view = inflater.inflate(R.layout.main, null);
            ((ViewPager) container).addView(view, 0);
            }
            if(position == 1){
                view = inflater.inflate(R.layout.main_second, null);
                ((ViewPager) container).addView(view, 0);
            }
            if(position == 2){
                view = inflater.inflate(R.layout.main_third, null);
                ((ViewPager) container).addView(view, 0);
            }
    
            return view;
    }
    

    The views are displayed correctly at first, but when i swipe the ViewPager, the Layout is hidden/destroyed. Why is this? Am i doing it the wrong way? please help and correct me.

    Thanks. Love. Wesley