【发布时间】:2017-03-03 08:39:38
【问题描述】:
我遇到了一个问题,希望您能帮我解决。在我的 Android 应用程序中,我使用通常的方式 (Snackbar.make().show()) 显示一个 Snackbar。但是,我还必须处理配置更改(例如从纵向到横向的方向更改)。
现在,如果配置发生变化,Snackbar 就会消失,这是我没想到的。我对 ProgressDialog 和 AlertDialog 有同样的问题,我通过使用 DialogFragment 的自定义子类解决了这个问题。
我的 AsyncTasks 也遇到了这个问题,我通过使用我保留的 Fragment 的自定义子类(setRetainInstance(true) in the Fragment 的onCreate())解决了这个问题,并保留了对我的 AsyncTask 的引用。在这两种情况下,每个 Fragment 都有一个 Activity 必须实现的回调接口,我在 onAttach()/onDetach() 期间设置/取消设置回调。
但是,Snackbar 似乎有所不同,因为它附加到视图而不是上下文,例如 ProgressDialog(在我的 DialogFragment 的getDialog() 中,我可以使用新的ProgressDialog(getActivity()))。
那么在配置更改后,我应该何时以及如何显示 Snackbar?是使用 Fragment 还是应该尝试通过在我的 Activity 上使用一些私有变量来解决这个问题,我通过 savedInstanceState 保存/恢复这些变量?
【问题讨论】:
标签: android configuration orientation snackbar