我正在使用JetPack导航体系结构组件,并且可以使用android:label="@string/event_lists_toolbar_title"
在导航图中设置工具栏的标题。我还想设置字幕,但是找不到方法,除非通过我的Fragment中的代码:
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 = ""
}
}
没有更好的解决方案吗?不支持开箱即用的导航功能吗?