使用JetPack导航体系结构组件设置工具栏的字幕

时间:2019-05-16 08:30:31

标签: android android-jetpack android-jetpack-navigation

我正在使用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 = ""
        }
}

没有更好的解决方案吗?不支持开箱即用的导航功能吗?

0 个答案:

没有答案