私は問題に直面しています。うまくいけば、あなたが私を修正するのを手伝ってくれるでしょう。私の Android アプリでは、通常の方法 ( Snackbar.make().show()
) を使用してスナックバーを表示します。ただし、構成の変更 (縦向きから横向きへの向きの変更など) にも対処する必要があります。
構成が変更されると、Snackbar が消えますが、これは予想外のことです。ProgressDialog と AlertDialog で同じ問題が発生しましたが、DialogFragment のカスタム サブクラスを使用して解決しました。
setRetainInstance(true)
また、AsyncTasks にもこの問題がありました。これは、AsyncTask への参照を保持するFragment のカスタム サブクラスを使用して解決しましたonCreate()
。onAttach()
どちらの場合も、各フラグメントには、アクティビティが実装する必要があるコールバック インターフェイスがあり、 /の間にコールバックを設定/設定解除しますonDetach()
。
ただし、Snackbar は、ProgressDialog などの Context ではなく View にアタッチされているため、異なるようです (getDialog()
私の DialogFragment では new を使用できますProgressDialog(getActivity())
)。
では、構成の変更後、いつ、どのように Snackbar を表示すればよいのでしょうか? Fragment を使用していますか、それとも、Activity にプライベート変数をいくつか用意して、これを回避する必要がありsavedInstanceState
ますか?