Ich habe RecyclerView
und in einigen Fällen zeige ich eine andere Ansicht darüber - ProgressDialog
, AlertDialog
oder DialogFragment
.Listener, um festzustellen, ob eine Ansicht auf der Vorderseite ist?
Gibt es eine Möglichkeit, mich über Fälle zu informieren, wenn meine RecyclerView
vorne ist oder eine andere Ansicht darüber ist?
Ich habe versucht, onFocusChangeListener()
zu meinem RecyclerView
hinzuzufügen, aber kein Glück.
PS. Definitiv kann ich in meiner RecyclerView
eine Methode erstellen isOnFront(boolean onFront)
und in allen meinen anderen Ansichten nennen Sie es, aber vielleicht gibt es mehr Eleganz Weg?
Ich habe eine trickreiche Lösung. Wenn Ihre Fälle nur so aussehen wie "ProgressDialog", "AlertDialog" oder "DialogFragment", dann sollten Sie 'onPause()' und 'onResume()' der Aktivität oder des Fragments überschreiben, wo Ihre 'Recyclerview 'ist implementiert. Der Dialog zeigt die Methode onPause() an, und wenn Sie diesen Dialog verlassen, wird 'onResume()' dieser Aktivität aufgerufen. Dadurch können Sie feststellen, ob 'Recyclerview' im Fokus ist oder nicht. – Moinkhan
Nein, das wird nicht funktionieren, da ich Dialog von derselben Aktivität zeige. Da Dialoge außerdem modal sein sollten, füge ich sie über 'FragmentManager.add()' anstelle von 'FragmentManager.replace()' hinzu. Also ruft 'onPause()' überhaupt nicht auf. –
Ok, also für Fragment können Sie auf Backstack Count arbeiten. Sie können herausfinden, ob ein Fragment vorhanden ist oder nicht. – Moinkhan