【问题标题】:how to set collapsing toolbar if I use single activity and navigation component?如果我使用单个活动和导航组件,如何设置折叠工具栏?
【发布时间】:2020-04-08 03:34:29
【问题描述】:

所以我使用导航组件和单个活动。我在 MainActivity 中设置了我的工具栏,使用此代码

    val navController = Navigation.findNavController(this,R.id.nav_host_fragment)

    val appBarConfiguration = AppBarConfiguration(setOf(
        R.id.destination_home,
        R.id.destination_search,
        R.id.destination_user_control,
        R.id.destination_create_event,
        R.id.destination_inbox,
      )
    )

    toolbar.setupWithNavController(navController,appBarConfiguration)

现在,我需要在其中一个片段中实现折叠工具栏。但问题是,我需要在 CollapsingToolbarLayout 中的 XML 中设置工具栏

但我拥有的工具栏 xml 位于 MainActivity.xml

我应该将折叠工具栏放在我的 MainActivity 中吗?如果是这样,那么它会影响我所有的片段吗?我很困惑我该怎么办?

【问题讨论】:

  • 对不起。我是初学者。我试过阅读。所以它永远不会起作用,我应该在我的活动中的每个片段中定义工具栏。我说的对吗?
  • 也许您可以将折叠工具栏添加到片段中,当它(片段)对用户可见时,您必须隐藏活动的工具栏? @莎拉

标签: android android-architecture-components android-collapsingtoolbarlayout android-architecture-navigation android-jetpack-navigation


【解决方案1】:

免责声明:我也是一个初学者,不确定这是否是正确的方法,但对我有用。

我通过将 CollapsingToolbarLayout 的 app:toolbarId 属性设置为与 MainActivity 的工具栏相同的 id 解决了这个问题。

  1. MainActivity 具有以下结构:

抽屉布局

-> 线性布局

--> 工具栏(id = myToolbar)

--> 片段

-> 导航视图

  1. 需要可折叠内容的片段:

协调器布局

-> 应用栏布局

--> CollapsingToolbarLayout(这是关键,将 app:toolbarId 属性设置为与 MainActivity 'myToolbar' 中相同的 id)

---> 可折叠的内容,随心所欲

-> 其余布局

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 2016-06-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多