我正面临一个问题,希望你可以帮我解决。在我的Android应用中,我使用常规方式(Snackbar.make().show()
)显示Snackbar。但是,我还必须处理配置更改(例如从纵向到横向的方向更改)。
现在,如果配置发生变化,Snackbar就会消失,这是我不会想到的。我在ProgressDialog和AlertDialog中遇到了同样的问题,我通过使用DialogFragment的自定义子类解决了这个问题。
我的AsyncTasks也遇到了这个问题,我通过使用Fragment的自定义子类解决了这个问题,我在Fragment的setRetainInstance(true)
中保留了onCreate()
并保留了对AsyncTask的引用。在这两种情况下,每个Fragment都有一个Call必须实现的回调接口,我在onAttach()
/ onDetach()
期间设置/取消设置回调。
但是,Snackbar似乎有所不同,因为它附加到View而不是Context,例如ProgressDialog(在我的DialogFragment的getDialog()
中我可以使用新的ProgressDialog(getActivity())
)。
那么在配置更改后何时以及如何显示Snackbar?是否正在使用片段或者我应该尝试通过在我的Activity上设置一些私有变量来解决这个问题,我通过savedInstanceState
保存/恢复?
答案 0 :(得分:1)
由于没有提供合适的答案且我必须在截止日期前完成,我现在采用以下解决方案: