私は、うまくいけばあなたが私を助けることができる問題に直面している。私のAndroidアプリでは、通常の方法(Snackbar.make().show()
)を使ってSnackbarを表示します。しかし、私は設定変更(縦から横への向きの変更など)にも対処しなければなりません。Snackbarの設定変更を処理する方法は?
ここで設定が変更されると、Snackbarが消えてしまいます。これは私が期待しているものではありません。私はProgressDialogとAlertDialogで同じ問題がありました。これはDialogFragmentのカスタムサブクラスを使って解決しました。
私は、私が保持しているフラグメントのカスタムサブクラス(setRetainInstance(true)
、フラグメントのonCreate()
)を使用して解決し、私のAsyncTaskへの参照を保持するAsyncTasksでこの問題が発生しました。どちらの場合も、各Fragmentにはアクティビティが実装するコールバックインターフェイスがあり、onAttach()
/onDetach()
の間にコールバックを設定/解除します。
しかし、Snackbarは、例えば、ProgressDialogのようなContextの代わりにViewに接続されているので違っているようです(ProgressDialog(getActivity())
のDialogFragmentのgetDialog()
)。
設定変更後にいつ、どのようにスナックバーを表示するのですか?フラグメントを使用しているかどうか、またはsavedInstanceState
を介して保存/復元する私のアクティビティにいくつかのプライベート変数を持たせることでこれを回避しようとしますか?