'How to create dynamically Fragment pager adapter

I am unable to create dynamic layout for each tabs, i am able to create tabs dynamically by this constructor(public MyPagerAdapter(FragmentManager fm , int noOfTabs)), but coudn't inflate the view for each tabs creating for each fragment which should be dyanmic.

public class MyPagerAdapter extends FragmentPagerAdapter 
{

        private final String[] TITLES = { "Categories", "Home", "Top Paid", "Top Free", "Top Grossing", "Top New Paid",
                "Top New Free", "Trending" };

        int noOfTabs;

        **public MyPagerAdapter(FragmentManager fm , int noOfTabs) 
        {           
            super(fm);
            this.noOfTabs = noOfTabs;
        }**

        /*public MyPagerAdapter(FragmentManager fm) 
        {
            super(fm);
        }*/

        @Override
        public CharSequence getPageTitle(int position) {
            return TITLES[position];
        }

        @Override
        public int getCount() {
            return noOfTabs; //TITLES.length;
        }

        @Override
        public Fragment getItem(int position) {
            return SuperAwesomeCardFragment.newInstance(position);
        }

    }

I am facing problem here which should be dynamic and not static as three fragments(FragmentA, FragmentB , FragmentC), it can be any number of fragments depending on the int noOfTabs:

@Override
public Fragment getItem(int position) {
    Fragment fragment =null;
    switch (position) {
        case 0:
            fragment = new FragmentA();
            break;
        case 1:
            fragment = new FragmentB();
            break;              
        case 2:
            fragment = new FragmentC();
            break;          }
    return fragment;    
}

Thanks in advance if any one could help me in this, as i am using this with help of library PagerSlidingTabStrip.



Solution 1:[1]

@nbokmans solution may be okay but i've used a container to accomplish that.

Creating a simple host fragment with FrameLayout inside and by replacing fragment was a good dynamic solution for me.

Using Otto EventBus just made it awesome because it can be changed from everywhere with just simple post

  @Subscribe
fun changeFragment(type: FragmentTypeEvent){
    val ft = activity.supportFragmentManager.beginTransaction()
    val frag = getFragment(type)
    ft.replace(R.id.container_frame,frag)
    ft.commit()
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1