2013-11-24 4 views
3

У меня есть 3 вкладки, и я использую fragments. Когда activity в первый раз называется, все три фрагмента сгенерированы. У меня есть некоторые флажки на fragment1, и когда я выполняю некоторые действия на fragment1 и проведите пальцем по экрану, я хочу снова позвонить oncreateView из fragment3? Всякий раз, когда я прокручиваю или щелкаю по вкладкам, я хочу, чтобы oncreateview снова вызывался, когда я динамически генерирую пользовательский интерфейс fragment3. Если я вернусь к fragment1, а затем вернусь к fragment3, я вижу изменения.при прокрутке вкладок, oncreateView of Fragment не вызывается, как вызвать oncreateView каждый раз

а) Моя деятельность расширяет FragmentActivity

public class AddProgramActivity extends FragmentActivity implements 
ActionBar.TabListener 

б) класс адаптер расширяет FragmentPagerAdapter

с) и мои классы осколочные расширения Fragment.

Пожалуйста, предложите, как я могу заставить свой фрагмент 3 oncreateView вызывается каждый раз, когда я прокручиваю или щелкаю по вкладке или как обновлять каждый раз, когда я сажусь.

ответ

1

У меня такая же проблема, как у вас. Моя ситуация пытается отменить флаги, чтобы отключить кнопки ActionBar и вызывать invalidateOptionsMenu каждый раз, когда создается представление.

У меня есть 3 вкладки (соответствующие 3 фрагментам) на панели действий. Если я выберем из вкладки 1 на вкладку 2 и обратно на вкладку 1, то onCreateView вкладки 1 не вызывается, но если я выберу из вкладки 1 на вкладку 3 и обратно на вкладку 1, то onCreateView вкладки 1 называется

Я не могу найти решение для этого. Мой обходной путь устанавливает обратно флаги и вызвать invalidateOptionsMenu в функции onTabSelected из TabListener

Somethings как этого

ActionBar.TabListener tabListener = new ActionBar.TabListener() { 
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
     pager.setCurrentItem(tab.getPosition()); 

     MainFragmentActivity.disableBookmarkFlag = MainFragmentActivity.disableShareFlag = true; 
     invalidateOptionsMenu(); 
    } 

    ..... 
} 

Надеется, что это помогает

+0

ли эту работе? Я попытался использовать метод OnResume, хотя он, похоже, не работает должным образом. Будет ли это лучшей работой? Кажется, немного чрезмерным для чего-то, что должно быть принципиально легко –

+0

да @RandyFreak, это работает для меня, хотя я все еще смотрю вокруг –

Смежные вопросы