You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android折叠工具栏标题动态修改:点击FAB标题不变的原因及解决方法

嘿,这个问题我可太熟了!很多人第一次用CollapsingToolbarLayout都会踩这个坑,我来给你拆解清楚~

标题无法改变的原因

当你使用CollapsingToolbarLayout时,它会完全接管Toolbar的标题显示逻辑——你直接调用setTitle()给Toolbar或者Activity设置标题,其实会被CollapsingToolbarLayout自己维护的标题给覆盖掉。默认情况下,它会用布局文件里app:title属性的值,或者初始化时设置的标题,之后你直接修改Toolbar的标题根本不会生效,因为它不是实际显示的那个标题载体。

实现点击FAB修改标题的方法

其实解决起来很简单,直接操作CollapsingToolbarLayout本身就行,步骤如下:

1. 获取CollapsingToolbarLayout实例

在你的ScrollingActivity的onCreate()方法里,先通过id找到布局中的CollapsingToolbarLayout(默认Scrolling Activity生成的布局里,它的id就是collapsing_toolbar,如果你改了id要对应替换):

// Kotlin 代码示例
val collapsingToolbar = findViewById<CollapsingToolbarLayout>(R.id.collapsing_toolbar)

如果你用Java的话:

// Java 代码示例
CollapsingToolbarLayout collapsingToolbar = findViewById(R.id.collapsing_toolbar);

2. 给FAB设置点击事件,修改标题

接着找到FAB的实例,给它添加点击监听器,在点击回调里调用CollapsingToolbarLayout的setTitle()方法:

// Kotlin 代码示例
val fab = findViewById<FloatingActionButton>(R.id.fab)
fab.setOnClickListener {
    collapsingToolbar.setTitle("我的新标题")
}

Java版本:

// Java 代码示例
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        collapsingToolbar.setTitle("我的新标题");
    }
});

额外小提示

如果你的Toolbar在折叠状态下需要显示和展开时不同的标题,可以配合AppBarLayout的滚动监听来切换,但大多数场景下,直接修改CollapsingToolbarLayout的标题就足够让展开/折叠状态下的标题同步更新啦。

内容的提问来源于stack exchange,提问作者Kunal Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:16:07