Fragment en ViewPager usando FragmentPagerAdapter está en blanco la segunda vez que se ve

Tengo una interfaz de fragmentos con pestañas en la parte inferior que abren diferentes fragmentos en la vista principal.

Tengo un fragmento en particular que es una lista de elementos. Si el usuario selecciona uno de los elementos de esta lista, se abre otro fragmento que contiene un visor que se desplaza horizontalmente entre todos los elementos de la lista en el fragmento anterior. Esto funciona muy bien.

El visor utiliza un FragmentPagerAdapter para mostrar los elementos.

El problema surge cuando el usuario selecciona un elemento de la lista, lo ve, luego presiona el botón en la barra de pestañas para volver a la lista, luego selecciona otro elemento. La segunda vez que se selecciona un elemento, aparece una pantalla en blanco en lugar del visor. No recibo ningún error en mi LogCat cuando esto sucede.

¿Por qué el visor solo aparece la primera vez?

FragmentPagerAdapter:

public class ViewPagerAdapter extends FragmentPagerAdapter {
    Cursor mCursor;

    public ViewPagerAdapter(FragmentManager fm, Cursor c) {
        super(fm);
        mCursor = c;
    }

    public void changeCursor(Cursor c) {
        mCursor = c;
        this.notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        if (mCursor == null) return 0;
        else return mCursor.getCount();
    }

    @Override
    public Fragment getItem(int position) {
        mCursor.moveToPosition(position);
        return TeamCardFragment.newInstance(mCursor, position);
    }
}

PagerFragment:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    Bundle bundle = getArguments();
    mCursorPosition = bundle.getInt(TeamCardCommon.BUNDLE_KEY_CURSOR_POSITION);

    View mView = inflater.inflate(R.layout.team_card_master, container, false);
    mViewPager = (ViewPager)mView.findViewById(R.id.team_card_master_view_pager);

    mAdapter = new ViewPagerAdapter(getFragmentManager(), cursor);
    new setAdapterTask().execute();

    return mView;
}

private class setAdapterTask extends AsyncTask<Void, Void, Void> {
    protected Void doInBackground(Void... params) {
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        mViewPager.setAdapter(mAdapter);
        mViewPager.setCurrentItem(mCursorPosition);
    }
}

Respuestas a la pregunta(12)

Su respuesta a la pregunta