android - 使用 JetPack 导航架构组件设置工具栏的副标题
问题描述
我正在使用 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 = ""
}
}
没有更好的解决方案吗?不支持开箱即用的导航?
解决方案
推荐阅读
- twilio - 多个 twilio 号码转为单个号码,我如何向接线员指示呼叫了哪个号码?
- php - 无法理解函数的返回和回显行为
- javascript - 为什么我必须先从我的论点中拉出,然后再从我的数组中拉出以从数组中删除一个项目?
- docker - 无法启动 FastAPI 服务器,asyncpg 中的错误
- python - Python 替换错误:replace() 参数 2 必须是 str,而不是 Series
- javascript - 来自 axios.delete 请求的 ID 没有进入 req.body 然后从 mySQL 中删除
- javascript - 客户端在服务器端渲染中究竟收到了什么?
- vb.net - 如何将外部 Web 浏览器的响应获取到 .net winforms WebBrowser?
- python - 为什么我的机器人说服务器所有者是无?
- xslt-2.0 - 使用 xslt 2.0 动态生成标头