我有RecyclerView
,在某些情況下,我在其上顯示了另一個視圖 - ProgressDialog
,AlertDialog
或DialogFragment
。監聽器檢測視圖是否在前面?
有沒有辦法通知我有關當我的RecyclerView
在前面或另一個視圖在上面的情況?
我試着將onFocusChangeListener()
添加到我的RecyclerView
,但沒有運氣。
PS。當然,我可以在我的RecyclerView
中創建一些方法isOnFront(boolean onFront)
並在我所有的其他視圖中調用它,但也許有一些更優雅的方式?
我有棘手的解決方案,如果你的情況就像顯示'ProgressDialog','AlertDialog'或'DialogFragment',那麼你應該重寫'onPause()'和'onResume()'活動或片段,你的'Recyclerview '被執行。顯示對話框將調用onPause()方法,並且關閉該對話框將調用該活動的onResume(),從中您可以知道「RecyclerView」是否處於焦點狀態。 – Moinkhan
不,這不起作用,因爲我從相同的活動中顯示對話框。此外,由於對話框應該是模態的,我通過'FragmentManager.add()'而不是'FragmentManager.replace()'添加它們。所以'onPause()'根本就沒有調用。 –
好吧,你可以在後臺堆棧上工作。你可以找出片段是否存在。 – Moinkhan