Exposed下拉菜单AutoCompleteTextView从DetailFragment返回后选项消失问题
问题产生原因
- Fragment视图重建未重新绑定数据:从DetailFragment回退到ThumbnailFragment时,如果ThumbnailFragment的视图被销毁重建(走
onDestroyView→onCreateView生命周期),你仅在Fragment首次初始化时给AutoCompleteTextView设置过Adapter和数据源,视图重建后没有重新绑定配置,就会导致下拉选项全部丢失。 - Adapter绑定的数据源被意外清空:如果
AutoCompleteTextView的Adapter绑定的是全局/共享的可变数据源,在跳转到DetailFragment的逻辑、或是DetailFragment的业务代码中,该数据源被意外清空,回退后Adapter重新读取数据时就没有可加载的选项。 - Exposed下拉菜单状态被误重置:如果在ThumbnailFragment的
onPause、onStop等生命周期回调中,误写了重置AutoCompleteTextViewAdapter、或是关闭下拉菜单并清空选项的逻辑;或是选中选项跳转前手动执行了清空选项的操作,没有在回到页面时恢复配置,也会导致该问题。 - Jetpack Navigation默认回退逻辑触发:如果你使用Jetpack Navigation组件实现页面跳转,默认配置下回退到上一级Fragment时会销毁并重建视图层,如果你的Adapter绑定逻辑仅写在
onCreate方法中,没有在onViewCreated等视图重建回调中重新执行,就会出现选项消失的问题。
相关界面参考
- ThumbnailFragment界面:

- DetailFragment界面:

内容的提问来源于stack exchange,提问作者Squall Huang
相关产品推荐
相关产品推荐

