首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在CoordinatorLayout中将固定视图显示到工具栏

在CoordinatorLayout中将固定视图显示到工具栏,可以通过以下步骤实现:

  1. 首先,在XML布局文件中,使用CoordinatorLayout作为根布局,并在其中添加一个AppBarLayout和一个NestedScrollView(或其他可滚动的视图)。
代码语言:xml
复制
<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <!-- 添加工具栏视图 -->

        </com.google.android.material.appbar.CollapsingToolbarLayout>

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- 添加可滚动的内容视图 -->

    </androidx.core.widget.NestedScrollView>

</androidx.coordinatorlayout.widget.CoordinatorLayout>
  1. 在CollapsingToolbarLayout中添加工具栏视图,可以使用Toolbar或其他自定义的视图。
代码语言:xml
复制
<com.google.android.material.appbar.CollapsingToolbarLayout
    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"
        app:layout_collapseMode="pin">

        <!-- 添加固定的视图 -->

    </androidx.appcompat.widget.Toolbar>

</com.google.android.material.appbar.CollapsingToolbarLayout>
  1. 在Toolbar中添加固定的视图,可以使用任何需要固定显示的视图,例如ImageView、TextView等。
代码语言:xml
复制
<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:layout_collapseMode="pin">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/logo"
        android:layout_gravity="start"
        android:padding="8dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="固定视图"
        android:textColor="@android:color/white"
        android:textSize="16sp"
        android:layout_gravity="center" />

</androidx.appcompat.widget.Toolbar>

通过以上步骤,可以将固定视图显示到CoordinatorLayout的工具栏中。在滚动NestedScrollView时,工具栏会根据滚动的位置进行展开或折叠,而固定的视图会一直显示在工具栏上方。这种布局方式常用于实现可折叠的标题栏效果,提升用户体验。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发笔记(一百三十五)应用栏布局AppBarLayout

可是仅仅使用Toolbar的话,还是有些呆板,比如说Toolbar固定占据着页面顶端,既不能跟着主体页面移上去,也不会跟着主体页面拉下来。...AppBarLayout能够捕捉到主体页面的滚动操作; 2、AppBarLayout捕捉到滚动操作之后,还要通知头部控件(通常是Toolbar),告诉头部控件你要怎么滚,是爱咋咋滚,还是满大街滚; 具体实现上...NestedScrollView继承自FrameLayout,其用法与ScrollView相似,都必须且只能带一个直接子视图,都是允许视图上下滚动等等。...1、AppBarLayout的滚动依赖于主体视图的滚动,与主体视图相对应的,可将AppBarLayout称作头部视图。既然一个页面分为头部和主体两部分,那么就存在谁先滚谁后滚的问题了。...然后头部固定不动,主体继续向上滚动。 向下滚动:头部固定不动,主体先向下滚动,一直滚到主体全部拉出。然后头部向下展开。

1.9K40

【翻译】MotionLayout实现折叠工具栏(Part 2)

让我们先看下 CoordinatorLayout 版本的实现效果,注意图片在工具栏几乎快要完全折叠之前是不会开始渐变到主色彩动画的: ?...也就是说:随着工具栏折叠动画的开始,图片便立刻发生渐变,一直持续工具栏完全到达折叠状态: ? 这个问题实际上很容易解决,这要感谢 MotionLayout 的另一个非常重要的特性:关键帧。...我们已经讨论过 MotionLayout 是如何在 ConstraintSets 中所定义的固定布局之间进行过渡动画了。...而关键帧允许我们在两个固定布局之间定义一个中间点,并对此点的属性值进行操作控制。...但是在目前来说,添加 tools:showPaths="true" 这段代码能够让 MotionLayout 计算并显示这三个被过渡动画所影响的视图控件的轨迹路线:标题文本控件(顶部,中心左侧),工具栏的海滩小排屋图片

1.7K30

Android开发笔记(一百四十四)高仿支付宝的头部伸缩动画

之所以要嵌套这么多层,是因为要完成以下功能: 1、CoordinatorLayout嵌套AppBarLayout,这是为了让头部导航栏能够跟随内容视图下拉而展开,跟随内容视图上拉而收缩。...这个内容视图可以是RecyclerView,也可以是NestedScrollView; 2、AppBarLayout嵌套CollapsingToolbarLayout,这是为了定义导航栏下面需要展开和收缩的部分视图...; 3、CollapsingToolbarLayout嵌套Toolbar,这是为了定义导航栏上方无论何时都要显示的长条区域,其中Toolbar还要定义两个不同的样式布局,用于分别显示展开与收缩状态时的工具栏界面...看起来还比较复杂,如果只对某个控件做渐变动画还好,可是导航栏上的控件有好几个,而且并不固定常常会增加和修改。倘若要对导航栏上的各控件逐一动画过去,不但费力气,而且后期也不好维护。...为了解决这个问题,我们可以采取类似遮罩的做法,即一开始先给导航栏罩上一层透明的视图,此时导航栏的画面就完全显示;然后随着导航栏的移动距离,计算当前位置下的遮罩透明度,比如该遮罩变得越来越不透明,看起来导航栏就像蒙上了一层面纱

1.2K10

通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout

效果对比图 介绍之前,我们先来看看效果对比图: 稀土掘金app原图 模仿的效果图 CoordinatorLayout的介绍 CoordinatorLayout作为“super-powered FrameLayout...它是设计用于直接AppBarLayout的子视图。...我在做这里的时候遇到一个问题,那就是CollapsingToolbarLayout里的Title的问题,一般默认是显示的,即使你不写,它也有会一个默认值一直显示在那里,等折叠收缩完的时候,停留在标题工具栏上...它不像 Actionbar 一样,一定要固定在Activity的顶部,而是可以放到界面的任意位置。...除此之外,在设计 Toolbar 的时候,Google也留给了开发者很多可定制修改的余地,这些可定制修改的属性在API文档中都有详细介绍,: 设置导航栏图标; 设置App的logo; 支持设置标题和子标题

2.2K90

CoordinatorLayout使用全解析

snap:当一个滚动事件结束,如果视图是部分可见的,那么它将被滚动到收缩或展开。例如,如果视图只有底部25%显示,它将折叠。相反,如果它的底部75%可见,那么它将完全展开。...CollapsingToolbarLayout作用是提供了一个可以折叠的Toolbar,它继承自FrameLayout,给它设置layout_scrollFlags,它可以控制包含在CollapsingToolbarLayout中的控件(:...CollapsingToolbarLayout可以通过app:contentScrim设置折叠时工具栏布局的颜色,通过app:statusBarScrim设置折叠时状态栏的颜色。...只要将Behavior绑定CoordinatorLayout的直接子元素上,就能对触摸事件(touch events)、window insets、measurement、layout以及嵌套滚动(nested...当然,Behavior无法独立完成工作,必须与实际调用的CoordinatorLayout视图相绑定。具体有三种方式:通过代码绑定、在XML中绑定或者通过注释实现自动绑定。

1.9K20

CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar-Android M新控件

CoordinatorLayout使得子view之间知道了彼此的存在,一个子view的变化可以通知另一个子view,CoordinatorLayout 所做的事情就是当成一个通信的桥梁,连接不同的view...比如:在CoordinatorLayout中使用AppBarLayout,如果AppBarLayout的子View(ToolBar、TabLayout)标记了app:layout_scrollFlags...enterAlwaysCollapsed 当你的视图已经设置minHeight属性又使用此标志时,你的视图只能已最小高度进入,只有当滚动视图到达顶部时才扩大完整高度 exitUntilCollapsed...– (Tab的宽度平均分配),也实现了可滚动的选项卡 – (Tab宽度不固定,同时可以横向滚动),还实现了所有Tab居中显示。...来看看TabLayout的三种实现方式: 固定的Tab,根据TabLayout的宽度适配 ? 固定的Tab,在TabLayout中居中显示 ? 可滑动的Tab ?

2K30

Android开发笔记(一百三十七)自定义行为Behavior

一般我们使用CoordinatorLayout,都是结合悬浮按钮FloatingActionButton、应用栏布局AppBarLayout或者可折叠工具栏布局CollapsingToolbarLayout...如果按照普通的实现方式,此种照镜子的动画效果,得给两个视图分别注册监听器,然后在A视图移动之际,同时触发B视图的移动行为。...如此一来,两个视图之间的联系变得很紧密了,不但要分别改造这两个视图,而且还无法给其他视图复用。...正因为存在以上问题,所以MaterialDesign库专门设计了CoordinatorLayout,用来协调内部视图互相的行为,具体的行为定义模板叫做CoordinatorLayout.Behavior...比如AppBarLayout节点的layout_behavior属性,便定义了AppBarLayout跟随主页面视图RecyclerView的运动行为。

1.2K20

Material Design技术分享

高度包含了静态高度与组件高度,一般UI高度是个固定值,只有状态不一致可能上下移动,但是在变化过后都会自动恢复自身的静态高度。下面的图表对比了多种元素的静止高度和动态高度偏移。 ?...在CoordinatorLayout中使用AppBarLayout,如果AppBarLayout的子View(ToolBar、TabLayout)标记了app:layout_scrollFlags滚动事件...(ToolBar、TabLayout)控件被标记的滚动事件。...: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk...enterAlwaysCollapsed:当你的视图已经设置minHeight属性又使用此标志时,你的视图只能以最小高度进入,只有当滚动视图到达顶部时才扩大完整高度。

2.1K60

Android5.0和6.0之后新增的控件说明

NestedScrollView Android 5.0 appcompat-v7 工具栏 Toolbar Android 5.0 recyclerview-v7 循环视图 RecyclerView...Android 5.0 协调布局 CoordinatorLayout Android 5.0 悬浮按钮 FloatingActionButton Android 5.0 底部弹窗 BottomSheetBehavior...Android 6.0 应用栏布局 AppBarLayout Android 5.0 可折叠工具栏布局 CollapsingToolbarLayout Android 5.0 侧滑删除 SwipeDismissBehavior...这个与系统版本有关,每个版本的android.jar是固定的,有在该内核中定义的控件才能正常调用,没在内核中定义的控件在运行时会扔出类找不到的异常。...这部分控件数量最多,实现的界面特效最丰富,而且互相之间存在依赖关系,design库依赖于appcompat-v7库,部分design控件NavigationView还依赖于recyclerview-v7

1.2K20

iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

想要保证这样的图形始终固定在状态栏后面,你可以用视图控制器(view controller)来让它固定在滚动内容上一层,又或者可以用滚动视图(scrolling view)来保证图形固定在屏幕的顶部。...让内容固定在导航栏区域外显示(这个区域由应用的statusBarFrame属性来定义)。如果你确定要这样做的话,请给导航栏区域添加固定的、与屏幕背景色相同的背景色。...想要了解如何在代码中定义工具栏,请参考Displaying a Navigation Toolbar以及UIToolbar Class Reference....对分视图控制器包含广泛的对象和视图,诸如: 表格,图像,地图,文本,网络,或自定义视图 导航栏,工具栏,或标签栏 注意 即使左侧窗格通常被称为主窗格,右侧窗格被称为详情窗格,但在代码中并没有强制固定这种从属关系...重要 以上四种单元格样式均支持添加表格视图元素,勾选或展开标志。添加这些元素会缩小标题以及副标题单元格的可用宽度。 使用表格视图可以简洁而高效地展示少量或者大量信息。

10.1K51

Android开发笔记(一百三十四)协调布局CoordinatorLayout

协调布局CoordinatorLayout Android自5.0之后对UI做了较大的提升,一个重大的改进是推出了MaterialDesign库,而该库的基础即为协调布局CoordinatorLayout...ViewGroup,实现效果类似于RelativeLayout,若要指定子视图在整个页面中的位置,有以下几个办法: 1、使用layout_gravity属性,指定子视图CoordinatorLayout...3、使用app:layout_behavior属性,指定子视图相对于其它视图的行为,当对方的位置发生变化时,本视图的位置也要随之相应变化。...,即使别的视图在布局文件中位于FloatingActionButton后面; 2、在隐藏、显示按钮上时会播放动画;其中隐藏操作是调用hide方法,显示操作是调用show方法; 3、FloatingActionButton...app:layout_behavior : 指定弹窗的行为,像底部弹窗固定取值"@string/bottom_sheet_behavior"。

1.9K20

自定义 Behavior,实现嵌套滑动、平滑切换周月视图的日历

简介 先上个小米日历的图,让大家知道要做一个什么效果: [strip] 这是小米日历的效果,在用户操作列表的时候,将日历折叠成周视图,扩大列表的显示区域,同时也不影响日历部分的功能使用,有趣且实用。...这个库比较流行,它支持周月视图的切换,符合 Material Design,也可以自定义显示效果。...向上移动是负值,所以日历的滚动范围是从 0 -calendarLineHeight (weekOfMonth - 1),减 1 是因为要多留一行显示星期的标题。...列表的滚动范围则是固定的,最多向上移动 5 倍的日历行高,也就是从 0 -calendarLineHeight 5。...惯性滑动 上面效果可以看出一个问题,当滑动到一半的时候松手,应该要恢复完整视图的位置。这里包含了,快速滑动后惯性滑动到指定位置的效果,和没有快速滑动时,往就近的指定位置滑动这两种效果。

3.2K10

NestedScrollView 嵌套 ListView 实现滑动折叠效果

> 上述布局需要注意的是: 必须采用CoordinatorLayout作为外层包裹,至于原因是由于使用Behavior需要。...android:fitsSystemWindows,经本人代码测试,表示CollapsingToolbarLayout的上边界是否扩展statusbar,这里如果想使用透明的statusbar,这里更新下应该该布局的根布局的该属性为...enterAlways - 实现quick return效果, 当向下移动时,立即显示View(比如Toolbar). exitUntilCollapsed - 向上滚动时收缩View,但可以固定Toolbar...enterAlwaysCollapsed - 当你的View已经设置minHeight属性又使用此标志时,你的View只能以最小高度进入,只有当滚动视图到达顶部时才扩大完整高度。...appbar_scrolling_view_behavior"指定给NestedScrollView,即当该控件滑动的时候,其他CollapsingToolbarLayout内的子view做相应的改变

3.3K50
领券