Я использую ViewPager в сочетании с вкладками ActionBar, как показано здесь а>. Я использую ActionBarSherlock для обратной совместимости, поэтому родительская активность расширяет SherlockFragmentActivity, а дочерние фрагменты расширяют SherlockFragment.
Решение отлично работает для вкладок со свайпом, но теперь я хочу динамически изменить фрагмент, связанный с одной из вкладок.
Я прочитал множество S.O. ответы на эту тему (например, здесь и здесь), но я не нашел внятного объяснения, как динамически изменять фрагмент при использовании ViewPager + TabsAdapter над.
Вот что у меня есть сейчас. Когда пользователь нажимает кнопку существующего фрагмента, я пытаюсь заменить фрагмент из родительского действия следующим образом:
AnotherFragment fragment = new AnotherFragment();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
int viewId = R.id.pager; // resource id of the ViewPager
int position = Constants.TAB_2; // tab pos of the fragment to be changed
String tag = "android:switcher:" + viewId + ":" + position;
ft.replace(viewId, fragment, tag);
ft.commit();
mTabsAdapter.notifyDataSetChanged();
Это не работает, поэтому я что-то упускаю. Я также пытался сделать это с вложенными фрагментами, используя getChildFragmentManager(), но столкнулся с проблемой, поскольку эта функция недоступна без API 17, Android 4.2.
Спасибо за любую помощь!