Как вставить необычный фрагмент во ViewPager?
Можно сделать так:
Некий интерфейс:interface Item {
    Fragment getFragment()
}
и две его реализации:class StepItemImpl implements Item {
    private StepsMenuItem data;
    StepItemImpl(StepsMenuItem data) {
        this.data = data;
    }
    @Override
    public Fragment getFragment() {
        return StepFragment.newInstance(data.getFileName());
    }
}

class WhatNextImpl implements Item {
    @Override
    public Fragment getFragment() {
        return WhatNextFragment.newInstance(...);
    }
}
далее, вы оборачиваете в эти класс свои данные и у вас получается список:List<Item> mItems;
...
    @Override
    public Fragment getItem(int position) {
        return mItems.get(position).getFragment();
    }
...
    @Override
    public int getCount() {
        return mItems.size()+1;
    }
/code>
Как-то так.
Можно сделать свой аналог getItemType(int position) как в классическом адаптере от ListView