如何在Navigation高级示例中集成CollapsingLayout及问题解决
我正在尝试将CollapsingToolbarLayout和Navigation组件的多回退栈高级示例集成,做了以下操作后遇到了标题显示的问题,想请教熟悉这块的开发者帮忙解决:
我的操作步骤
1. 修改main_activity.xml布局
添加了CollapsingToolbarLayout嵌套结构,替换原有的ActionBar配置:
<com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <com.google.android.material.appbar.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"/> </com.google.android.material.appbar.CollapsingToolbarLayout> </com.google.android.material.appbar.AppBarLayout>
2. 调整MainActivity.kt中的导航配置
修改setupBottomNavigationBar()方法,让CollapsingToolbarLayout和NavController关联,同时注释掉了原有的setupActionBarWithNavController调用:
private fun setupBottomNavigationBar(){ ... controller.observe(this, Observer { navController -> mainBinding.collapsingToolbarLayout.setupWithNavController(mainBinding.toolbar, navController) // setupActionBarWithNavController(navController) }) ... }
遇到的问题进展
- 初始问题:集成后出现两个ActionBar,顶部显示应用名称,下方初始无内容;导航到子页面时仅显示灰色返回箭头,完全看不到目标页面的标题。
- 更新1:按照@Manoj的建议移除了重复的ActionBar,现在双ActionBar的问题解决了,但标题不显示的问题依然存在。
- 更新2:现在导航到子页面时返回箭头能正常显示,但目标页面的标签(标题)还是无法在
CollapsingToolbarLayout中显示出来。
希望有熟悉Navigation多回退栈实现的朋友能帮忙分析下,怎么让CollapsingToolbarLayout正确同步当前导航页面的标题?
内容的提问来源于stack exchange,提问作者kaushalyap
相关产品推荐
相关产品推荐

