CollapsingToolbarLayout及Toolbar

本文介绍如何在Android应用中修改Toolbar的返回按钮图标,并详细解释了CollapsingToolbarLayout的各种属性及其用途。此外,还提供了一个具体的监听折叠收缩状态的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改Toolbar的返回按钮图标:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?android:actionBarSize"
    app:layout_collapseMode="pin"
    app:navigationIcon="@mipmap/back"    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

layout_collapseMode=”pin”
设置为这个模式时,当CollapsingToolbarLayout完全收缩后,Toolbar还可以保留在屏幕上
pin:在滑动过程中,此自布局会固定在它所在的位置不动,直到CollapsingToolbarLayout全部折叠或者全部展开
app:layout_collapseMode=”parallax”
视察效果,在滑动过程中,不管上滑还是下滑都会有视察效果

<android.support.design.widget.CollapsingToolbarLayout
      android:id="@+id/collapsing_toolbar"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:fitsSystemWindows="true"
      app:contentScrim="@color/peron_bacground"
      app:collapsedTitleGravity="left"
      app:expandedTitleGravity="center_horizontal"
        app:expandedTitleMarginBottom="@dimen/collapsing_toolbar_layout_title_marginbottom"
app:expandedTitleTextAppearance="@style/ExpandTitleStyle"
app:layout_scrollFlags="scroll|exitUntilCollapsed|enterAlways">

app:contentScrim
设置当完全CollapsingToolbarLayout折叠(收缩)后的背景颜色
app:collapsedTitleGravity=”left”
折叠后标题的位置
app:expandedTitleGravity=”center_horizontal”
展开后标题的位置
app:expandedTitleMarginBottom
展开后标题距离底部大小
app:collapsedTitleTextAppearance
这是在收缩时Title文字特点外形的设置
app:expandedTitleTextAppearance
同理这是在展开时Title文字特点外形的设置
app:expandedTitleMarginStart
设置扩张时候(还没有收缩时)title向左填充的距离
app:expandedTitleMarginEnd
这个同理是收缩结束时向左填空的距离

我在做这里的时候遇到一个问题,那就是CollapsingToolbarLayout里的Title的问题,一般默认是显示的,即使你不写,它也有会一个默认值一直显示在那里,等折叠收缩完的时候,停留在标题工具栏上。怎么消除这个默认值呢?怎么知道收缩完成了,再把这个值设置出来呢?这里我对AppBarLayout设置了一个监听,它有一个监听方法:addOnOffsetChangedListener监听折叠收缩的位移。如下:

app_bar_layout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
    @Override
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
        if (verticalOffset <= -head_layout.getHeight() / 2)     {
            mCollapsingToolbarLayout.setTitle("xx");
        } else {
            mCollapsingToolbarLayout.setTitle(" ");
        }
    }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值