[android] OnCreateView chiamato più volte / Utilizzo di ActionBar e Fragments



0 Answers

Esiste l'opzione show / hide proprio per evitare che i frammenti vengano ridipinti / ricreati e onCreate() e onCreateView() non vengano reinvocati.

Question

Ho cambiato parte della mia app da Attività a Frammenti in modo da poter utilizzare le schede ActionBar pulite.

Tuttavia, dopo aver completato la transizione mi sono imbattuto in un problema: ogni volta che passo a un'altra scheda, quel Frammento viene creato tutto da capo. Sia onCreate che onCreateView vengono richiamati ogni volta che arrivo a una scheda.

Ho 4 schede, ognuna delle quali ha lo scopo di aprire uno di questi frammenti:

Fragment ShopFragment = new WebActivity();
Fragment SearchFragment = new SearchActivity(context);
Fragment StoreFragment = new StoreLocatorActivity(context, this);
Fragment BlogsFragment = new BlogsActivity(context, this);

Ecco il mio codice per l'ascoltatore:

    class MyTabsListener implements ActionBar.TabListener {
        public Fragment fragment;

        public MyTabsListener(Fragment fragment) {
            this.fragment = fragment;
        }

        @Override
        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            ft.hide(fragment);
        }

        @Override
        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            ft.replace(R.id.fragment_container, fragment);
        }

        @Override
        public void onTabUnselected(Tab tab, FragmentTransaction ft) {          

        }

    }

Qualcuno potrebbe per favore indirizzarmi nella giusta direzione?






Related