estoy creando ViewPager con tres viewsin ella. En la primera vista es un ListView, donde onItemClick reemplaza ese fragmento nuevo fragmento con WebView en él. Y tengo dos problemas: al agregar 'transaction.addToBackStack (null)', o 'transaction.setCustomAnimations (...)' Fragment with WebView se detiene para mostrarse. Sin estas líneas se muestra, pero no puedo hacer el botón ATRÁS para volver a la lista.Android - Backstack al sustituir el fragmento en ViewPager
estaba creando código basado en that tutorial y this SO question. En esa pregunta, se utiliza PagerAdapter, y estoy usando FragmentPagerAdapter. Además, no necesito más fragmentos para reemplazar. Puede ser solo una vez (de la lista a webView y viceversa).
Aquí es el código de mi adaptador:
public Fragment getItem(int position)
{
Fragment fragment = null;
switch (position)
{
case 0: // news
if (mFragmentAtPos0 == null)
{
mFragmentAtPos0 = new NewsListFragment(new FirstPageFragmentListener()
{
@Override
public void onSwitchToNewsFragment(String url, ViewGroup container)
{
FragmentTransaction transaction = fm.beginTransaction();
transaction.setCustomAnimations(R.anim.rotate_in, R.anim.rotate_out, R.anim.rotate_in, R.anim.rotate_out);
WebViewFragment wv = new WebViewFragment(url, context);
transaction.replace(container.getId(), wv);
transaction.commit();
mFragmentAtPos0 = wv;
notifyDataSetChanged();
}
});
}
fragment = mFragmentAtPos0;
break;
case 1:
fragment = new NewsInfoFragment(context, true);
break;
case 2:
fragment = new NewsInfoFragment(context, false);
break;
}
return fragment;
}
y fragmento de onCreateView() de un fragmento de esa lista:
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
if (position < listNewsAdapter.getCount() - 1)
{
if (listener != null)
{
listener.onSwitchToNewsFragment(listNewsAdapter.getItem(position).getNewsUrl(), container);
}
}
}
});