我正在使用 JetPack 导航架构组件,我可以在导航图中设置工具栏的标题android:label="@string/event_lists_toolbar_title"
。我也想设置字幕,但找不到这样做的方法,除了通过我的片段中的代码:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
(activity as? AppCompatActivity)?.supportActionBar?.subtitle = getString(R.string.my_subtitle)
// ...
}
但是字幕会保留下来,我必须在再次导航到另一个屏幕后重新设置它。我可以在onPause()
函数中执行此操作,也可以在我的 Activity (NavController.OnDestinationChangedListener) 中执行此操作:
override fun onDestinationChanged(controller: NavController, destination: NavDestination, arguments: Bundle?) {
// resets subtitle of Toolbar
if (destination.id != R.id.fragment_with_subtitle) {
supportActionBar?.subtitle = ""
}
}
没有更好的解决方案吗?不支持开箱即用的导航?