CoordinatorLayout系列(四)CollapsingToolbarLayout

本文深入解析了Android CoordinatorLayout中的CollapsingToolbarLayout,包括其实现原理和过程。CollapsingToolbarLayout作为FrameLayout的扩展,利用CoordinatorLayout和AppBarLayout实现了滑动效果。文章详细介绍了如何配置和调整布局属性,以达到标题移动、ToolBar透明度变化等效果,并提供了实现沉浸式状态栏和调整 scrim 出现时机的方法。
摘要由CSDN通过智能技术生成

系列文章:
CoordinatorLayout系列(一):Behavior
CoordinatorLayout系列(二)AppBarLayout
CoordinatorLayout系列(三)AppBarLayout之layout_scrollFlags
CoordinatorLayout系列(四)CollapsingToolbarLayout
CoordinatorLayout系列(五)例子

终于到CollapsingToolbarLayout这个强大而装逼的布局了,这个布局的实现和原理都是非常的简单,比如下面的效果:
在这里插入图片描述
是不是很酷?当然这还是比较简单的,这仅仅是使用到了系统自带的一些功能,通过自定义可以实现更复杂的效果。

demo地址:https://github.com/whoami-I/CoordinatorLayoutExample

先讲实现的方式,再讲实现的过程。

实现原理

通过查看CollapsingToolBarLayout的源代码,发现其实现方式非常简单,源代码加在一起也就1000多行,其实简单的原因有两方面,一是CollapsingToolBarLayout其实是一个FrameLayout;

### 回答1: CoordinatoLayoutCollapsingToolbarLayout是Android开发中常用的两个控件,它们可以实现许多优秀的布局效果。其中,仿美团外卖、京东、安居客等搜索框的效果就可以通过使用这两个控件来实现。 首先,将CoordinatorLayout作为最外层布局,用AppBarLayout包裹CollapsingToolbarLayout和搜索框(Toolbar)的布局。在CollapsingToolbarLayout内部设置要展示的内容,如图片、文字等,以及折叠时隐藏的内容。而AppBarLayout则可以通过监听滚动事件来控制CollapsingToolbarLayout的展开与收缩。 接着,设置搜索框为Toolbar,并在Toolbar中加入EditText等控件来实现搜索功能。为了让搜索框在AppBarLayout的收缩中悬浮在顶部,可以将Toolbar设置为app:layout_scrollFlags="scroll|enterAlways|snap"。 最后,通过设置CollapsingToolbarLayoutcollapsedTitleGravity、expandedTitleGravity、collapsedTitleTextAppearance、expandedTitleTextAppearance等属性来调整标题的展示效果,以适应不同的布局要求。 总之,通过使用CoordinatorLayoutCollapsingToolbarLayout这两个强大的布局控件,我们可以实现许多炫酷的布局效果,特别是像搜索框这样的常见功能,能够轻松实现,提高应用的用户体验。 ### 回答2: CoordinatorLayout是一个新的父容器控件,可以让子控件之间产生联动效果。CollapsingToolbarLayoutCoordinatorLayout的一个子控件,可以实现ToolBar折叠效果。 通过使用CoordinatorLayoutCollapsingToolbarLayout可以实现仿美团外卖、京东、安居客等应用的搜索框。我们可以在CollapsingToolbarLayout中添加一个EditText控件作为搜索框,并对其进行样式设置和位置调整。 在CollapsingToolbarLayout中,我们可以为其设置一个折叠模式,在不同的模式下控件的显示样式也会变化。当需要显示搜索框(例如在展开状态)时,我们可以设置一个比较大的折叠模式,使得搜索框完全显示。而当折叠Toolbar时,搜索框会根据预设的模式变为一个小图标,同时不影响其他控件的显示。 总的来说,通过使用CoordinatorLayoutCollapsingToolbarLayout,我们可以实现复杂的联动效果,让UI界面更加高效、美观。而在实现类似搜索框这类单一控件时,只需要在CollapsingToolbarLayout中添加控件,并对其进行相应样式和位置的设置即可。 ### 回答3: CoordinatorLayout是Android Support Design库中新增的一个布局类,它可以协调子View的滑动行为,实现一些复杂的交互效果。其中,CollapsingToolbarLayoutCoordinatorLayout中的一个布局类,通常用于实现可以折叠或扩展的标题栏效果。 在实现仿美团外卖、京东、安居客等搜索框的效果时,我们可以使用CollapsingToolbarLayout来实现。具体步骤如下: 1. 在布局文件中,先将CoordinatorLayout作为父布局,再添加一个AppBarLayout作为子布局。 2. 在AppBarLayout中添加一个CollapsingToolbarLayout作为子布局,并设置app:layout_scrollFlags="scroll|exitUntilCollapsed"属性,表示该子View可以滚动,并在完全收缩前一直存在。 3. 在CollapsingToolbarLayout中添加一个Toolbar作为子布局,这个Toolbar就是我们的标题栏。可以在其中添加搜索框等控件。 4. 在CollapsingToolbarLayout中再添加一个ImageView或其他子View,作为背景图片或其他效果。(可选) 5. 在布局文件中添加一个RecyclerView或其他滑动控件,将其放入CoordinatorLayout中,并设置app:layout_behavior="@string/appbar_scrolling_view_behavior"属性,表示该子View会受到AppBarLayout的滚动行为影响。 这样一来,当用户向下滑动页面时,CollapsingToolbarLayout会慢慢收缩,最后只剩下Toolbar,而背景图片则会消失或变成其他效果。与此同时,RecyclerView会随着滑动而滚动,实现搜索框随着页面滑动的效果。 总之,使用CoordinatorLayoutCollapsingToolbarLayout可以方便地实现一些复杂的交互效果,如此处的仿美团外卖、京东、安居客等搜索框效果。需要注意的是,该效果的实现还需进一步考虑适配、优化等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值