如何在 CollapsingToolbarLayout 内的工具栏中固定标题 [英] how to pin title in Toolbar inside CollapsingToolbarLayout

查看:29
本文介绍了如何在 CollapsingToolbarLayout 内的工具栏中固定标题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的布局:

<android.support.design.widget.AppBarLayout

    <android.support.design.widget.CollapsingToolbarLayout
        ...

        <android.support.v7.widget.Toolbar
            ...
        />

    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

我希望标题留在工具栏中,而不是在 CollapsingToolbarLayout 中.所以我改变了我的代码:

I want title stays in Toolbar, not in CollapsingToolbarLayout. So I changed my code from:

mCollapsingToolbar = ...
mCollapsingToolbar.setTitle(title);

到:

mTitleBar = ...
setSupportActionBar(mTitleBar);
getSupportActionBar().setTitle(title);

但是标题不可见.我的设备是 Nexus 6 5.1.0

But the title is not visible. My device is Nexus 6 5.1.0

提前致谢.

更新 1:我已将代码更改为此,仍然无法正常工作:(

Update 1: I have changed code to this, still not work :(

setSupportActionBar(mToolbar);
getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

<小时>

更新 2:这是这三个视图的代码片段:


Update 2: Here is code snippet for those three views:

private void setUpAppBarLayout() {
    AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar_layout);
    appBarLayout.setBackgroundColor(extractBackgroundColor());
}

private void setUpCollapsingToolbarLayout() {
    if (null == mCollapsingToolbar) {
        mCollapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
    }
}

private void setUpToolbar(String title) {
    mToolbar = (Toolbar) findViewById(R.id.tb_main);
    mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            supportFinishAfterTransition();
        }
    });
    mToolbar.inflateMenu(R.menu.menu_group_activity);
    mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            if (R.id.action_settings == item.getItemId()) {
                ...
                return true;
            } else {
                return false;
            }
        }
    });
    mToolbar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mRecyclerView.smoothScrollToPosition(0);
        }
    });

    setSupportActionBar(mToolbar);
    getSupportActionBar().setTitle(title);
    getSupportActionBar().setDisplayShowTitleEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

调用 setSupportActionBar(mToolbar) 后,标题和菜单都不可见.

After called setSupportActionBar(mToolbar), both title and menu are invisible.

推荐答案

为了让 Toolbar 标题与 CollapsingToolbarLayout 一起使用,您需要将 ctl 的标题设置为 false

In order for the Toolbar title to work with the CollapsingToolbarLayout you need to set the ctl's title enabled to false

CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
collapsingToolbarLayout.setTitleEnabled(false);

这篇关于如何在 CollapsingToolbarLayout 内的工具栏中固定标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆