Eine Sache bewusst zu sein, ist, dass isVisible()
den sichtbaren Zustand des aktuellen Fragment zurückgibt. Es gibt ein Problem in der Unterstützungsbibliothek. Wenn Sie verschachtelte Fragmente haben und das Elternfragment (und damit alle untergeordneten Elemente) ausblenden, sagt das Kind immer noch, dass es sichtbar ist.
isVisible()
ist endgültig, so kann leider nicht überschrieben werden. Meine Abhilfe war ein BaseFragment
Klasse zu erstellen, die alle meine Fragmente erweitern, und erstellen Sie dann eine Methode, wie so:
public boolean getIsVisible()
{
if (getParentFragment() != null && getParentFragment() instanceof BaseFragment)
{
return isVisible() && ((BaseFragment) getParentFragment()).getIsVisible();
}
else
{
return isVisible();
}
}
ich isVisible() && ((BaseFragment) getParentFragment()).getIsVisible();
, weil wir falsch zurückkehren wollen, wenn jede der Eltern Fragmente versteckt sind.
Dies scheint den Trick für mich zu tun.
http://developer.android.com/reference/android/app/Fragment.html#isVisible() – Tarun
Die Lösung, die am besten für mich funktionierte, war http://stackoverflow.com/a/6751537/1816603 –