2013-07-01 4 views
22

J'ai une FragmentActivity, des fragments et un service en cours d'exécution. Il est possible de vérifier à partir du service si un fragment spécifique est visible?Android: Vérifier si un fragment est visible

+5

Il est pas vraiment une dupliquée parce que l'autre question est posée dans le cadre d'un ViewPager, et les réponses reflètent ce contexte. C'est une question plus générale. – awy

+1

ce n'est pas un doublon. –

+0

La solution qui a fonctionné le mieux pour moi était http://stackoverflow.com/a/6751537/1816603 –

Répondre

5

Vérifiez le code ci-dessous:

public class MyFragment extends Fragment 
      @Override 
      public void setMenuVisibility(final boolean visible) { 
       super.setMenuVisibility(visible); 
       if (visible) { 
        ... 
       } 
      } 

Il est de this thread. Ou vous pouvez également vérifier this one.

16
public boolean isFragmentUIActive() { 
    return isAdded() && !isDetached() && !isRemoving(); 
} 

Fait l'affaire.

+0

Cela renvoie faux si je l'appelle du service, mais peut-être que je fais quelque chose de mal. – user2538848

46

check if(YourFragment.this.isVisible())

+1

Comment dans une barre d'action à onglets? La navigation est foiré dans ce schéma de fragment. – Skynet

+0

Comment la navigation est foiré? Qu'est-ce que vous voulez réaliser? –

+0

J'ai une activité de l'onglet Barre d'action, les fragments se composent d'onglets, j'ai un bouton sur la barre d'action qui une fois pressé navigue vers un fragment différent dit "Info sur l'application". Dès que l'utilisateur accède à info, je le désactive afin qu'il ne soit pas appelé redondant, puis je le réactiverai une fois que le dos est pressé mais dire si l'utilisateur navigue vers info (info est désactivée jusqu'à ce que le dos est pressé) mais je veux activez-le à nouveau si vous n'appuyez pas sur le dos mais que la navigation entre les onglets se produit. – Skynet

Questions connexes