Android开发实战之拥有Material Design风格的折叠布局

关于折叠布局,也许你并不陌生,最新版的陌陌,或者一些其他的社交APP都有一个折叠布局。折叠布局,让我们的APP更加具有交互性,同时也更加美观,先来展示一下效果图:

这是我个人做的一个APP主界面,可以看到,在滑动的时候,大标题随着拉动变为小标题,同时移动位置,并且有一张图片,随滑动淡出屏幕。如果你了解过Material Design,那么这个看似复杂的效果就很容易实现,都是用到这个desigon依赖库中的组件属性而完成的.

首先加入依赖库:

 compile 'com.android.support:design:23.3.0'
 compile 'com.android.support:recyclerview-v7:23.3.0'

最好也要把recyclerview的依赖添加一下,不要问我为什么,经验之谈。

然后是布局:

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/cdl_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    >
  <android.support.design.widget.AppBarLayout
      android:layout_width="match_parent"
      android:layout_height="200dp"
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/ctl_title"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:contentScrim="?attr/colorPrimary">
      <ImageView
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@drawable/titile_bg2"
          app:layout_collapseMode="parallax"
          app:layout_collapseParallaxMultiplier="0.7"
          />
      <android.support.v7.widget.Toolbar
          android:layout_width="match_parent"
          android:layout_height="?attr/actionBarSize"
          android:id="@+id/tl_title"
          app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
          app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
          app:layout_collapseMode="pin"
          >
      </android.support.v7.widget.Toolbar>

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

  </android.support.design.widget.AppBarLayout>
  <android.support.v4.widget.NestedScrollView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:layout_behavior="@string/appbar_scrolling_view_behavior"
      >
    <com.yakir.view.ScoreGridView
        android:layout_marginTop="20dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3"
        android:cacheColorHint="#00000000"
        android:gravity="center_vertical"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp"
        android:id="@+id/gv_menu"></com.yakir.view.ScoreGridView>

  </android.support.v4.widget.NestedScrollView>


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

接着是逻辑代码:

        setSupportActionBar(toolBarTitle);
        ctl_title.setCollapsedTitleGravity(Gravity.CENTER);
        ctl_title.setExpandedTitleGravity(Gravity.CENTER);
        ctl_title.setTitle("手机安全卫士");
        ctl_title.setExpandedTitleColor(Color.WHITE);
        ctl_title.setCollapsedTitleTextColor(Color.WHITE);

 谷歌在5.0之后就推荐使用toolbar代替actionbar,toolbar更具拓展性。这个依赖库一个很重要的控件是:CoordinatorLayout,协调布局。

 这是一个将这些布局联动起来的重要布局。接下来再说说折叠布局:CollapsingToolbarLayout,它的:Expanded拉出,Collapsed关上,可以设置一些相关属性。

最重要的是设置: app:layout_scrollFlags="scroll|exitUntilCollapsed"这样它才能随滑动而滚动。

在toolbar中设置:app:layout_collapseMode="pin",使它不随滑动而退出屏幕。在AppbarLayout中设置显示折叠的高度。还可以在包裹的ImageView中设置滑动联动效果: app:layout_collapseMode="parallax" app:layout_collapseParallaxMultiplier="0.7"。

其实,实现也不是特别的复杂,只要理解了这几个新空间的用途,很容易就可以做到自己想要的酷炫效果。好了,如果你有什么疑问欢迎下方留言交流。希望对你有所帮助。

转载于:https://www.cnblogs.com/lovelyYakir/p/5831864.html

AppbarLayout与CollapsingToolbarLayout的使用(1) 针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。 阅读详情

相关推荐

Android支持库CollapsingToolbarLayout

介绍 CollapsingToolbarLayout 用于美化 Toolbar 的运行效果, 它是由Design Support 库 提 供 的。CollapsingToolbarLayout 被设计用于 AppBarLayout 的子布局,AppBarLayout 是一个垂直的 LinearLayout,只是为了实现交互动画效果它增加了一些滚动特性。AppBarLayout 只有作为 CoordinatorLayout 的直接子布局才可以正常的工作,如果 CoordinatorLayout 包含了一个不

Black_Cat_33的博客 3694

app:layout_collapseMode

CollapsingToolbarLayout是一个FrameLayout,它内部能有多个子元素,而子元素也会有不同的表现。这些子元素可以添加layout_collapseMode标志位进而产生不同的行为。其实这里也只有两种标志位,分别是: 1、 pin:有该标志位的View在页面滚动的过程中会一直停留在顶部,比如Toolbar被固定在顶部 2、parallax:有该标志位的View表示能和页...

GracefulGuigui的博客 1万+

第12章 最佳的UI体验——Material Design实战

Material Design是由谷歌的设计工程师们基于传统优秀的设计原则,结合丰富的创意和科学技术所发明的一套全新的界面设计语言,包含了视觉、运动、互动效果等特性。那么谷歌凭什么认为Material Design就能解决Android平台界面风格不统一的问题呢?一言以蔽之,好看!这次谷歌在界面设计上确实是下足了功夫,很多媒体评论,MaterialDesign的出现使得Android首次在UI方面超越了iOS。

Roderick888888的博客 1809

Android开发实战手把手教你实现一个折叠式布局

在上一篇文章我们实现了一个头部固定的ExpandedListView,今天需要在他的头部加一个背景图片,默认状态下他处于展开状态,往上滑的时候背景图片逐渐的折叠起来,往下滑的时候背景图片慢慢的展开效果图如下: 图1 有人可能会说这不就是折叠式布局吗?是的,这就是Android 5.0给我们提供的材料设计库中的CoordinateLayout就是解决这个问题的,使用CoordinateLayout来...

门心叼龙的专栏 6747

Material Design控件使用(一)

Md风格App架构搭建,AndroidM AndroidL 控件使用介绍

朱利源的博客 1万+

Android Material Design 系列之 CoordinatorLayout + CollapsingToolbarLayout 开发详解

前言 CoordinatorLayout 遵循 Material 风格,结合 AppbarLayout, CollapsingToolbarLayout 等可产生各种炫酷的效果,本篇博客就将介绍 CoordinatorLayout 的各种酷炫效果。 一、View 介绍 1、CoordinatorLayout 又名协调者布局,它是 support.design 包中的控件。简单来说,CoordinatorLayout 是用来协调其子 view 并以触摸影响布局的形式产生动画效果的一个 super-power

一名互联网时代苟且偷生的 Android码农 1616

android 折叠式布局,Android开发实战之拥有Material Design风格的折叠布局

关于折叠布局,也许你并不陌生,最新版的陌陌,或者一些其他的社交APP都有一个折叠布局。折叠布局,让我们的APP更加具有交互性,同时也更加美观,先来展示一下效果图:这是我个人做的一个APP主界面,可以看到,在滑动的时候,大标题随着拉动变为小标题,同时移动位置,并且有一张图片,随滑动淡出屏幕。如果你了解过Material Design,那么这个看似复杂的效果就很容易实现,都是用到这个desigon依赖...

weixin_35315373的博客 1727

Material Design实战:打造精美的Android应用

Material Design是谷歌在2014年推出的设计语言,旨在为移动设备和Web应用提供一致、美观和现代化的界面设计。它强调响应式动画、阴影效果和漂亮的颜色组合,为用户带来出色的用户体验。在本篇博客中,我们将通过实际应用Material Design原则和组件,让你的Android应用焕发全新的魅力。在本篇博客中,我们深入了解了Material Design的基本原则和组件,并实战应用了这些设计风格在Android应用中。

2201_76125261的博客 246

Android开发之拥有Material Design风格的折叠布局

关于折叠布局,也许你并不陌生,最新版的陌陌,或者一些其他的社交APP都有一个折叠布局。折叠布局,让我们的APP更加具有交互性,同时也更加美观,先来展示一下效果图: 这是我个人做的一个APP主界面,可以看到,在滑动的时候,大标题随着拉动变为小标题,同时移动位置,并且有一张图片,随滑动淡出屏幕。如果你了解过Material Design,那么这个看似复杂的效果就很容易实现,都是用到这个d

Mr_Duoduo的博客 2063

泛微E9开发 明细表字段赋值到主表字段,将各类型合计赋值到主表类型合计中

①绑定明细表类型、预计金额字段的值改变事件,每当有值发生改变,就需要重新计算供应商1、供应商2、供应商3的合计,如果不绑定这两个字段的话,会出现计算不及时或计算错误的问题。②当有明细行被删除时,也需要重新计算供应商1、供应商2、供应商3的合计,比如删除了供应商1的明细行,如果不重新计算,那么供应商1的值还是被删之前的值,合计错误。将各类型合计赋值到主表类型合计中。

a_waste_only的博客 3836

WPF实战:利用Live Charts实现高性能动态曲线可视化

本文详细介绍了如何在WPF中使用Live Charts实现高性能动态曲线可视化,特别适用于工业监控和金融分析等实时数据场景。通过增量渲染、内存复用和硬件加速等核心技术,Live Charts能够高效处理高频数据更新,显著提升图表流畅度。文章提供了从基础实现到工业级优化的完整解决方案,帮助开发者应对各种性能挑战。

weixin_29189373的博客 407

一个自由定制可展开的的Material Design风格FloatingActionButton

一个自由定制的Material Design风格FloatingActionButton先来看看效果根据GIF可以看出,是一个可折叠菜单式的FloatingActionButton,在部分App中我们也能见到这种效果,下面就一步步学习怎么使用,根据个人需求,开发自己定制的Material Design 风格的 折叠 FloatingActionButton; 项目依赖的是一个自由定制的Materia

dai的博客 1080

Homebrew高效升级与国内镜像源配置全攻略

本文详细介绍了如何通过配置国内镜像源(如清华、中科大、阿里云)来高效升级Homebrew,解决国内开发者访问GitHub仓库速度慢的问题。文章提供了从基础配置到永久生效的完整教程,包括常见问题解决和进阶技巧,帮助开发者大幅提升软件包管理效率。

weixin_28835551的博客 416

(一)Android Material Design最佳实战

关于Android Material Design的最佳实战,设计多个组件使用,给出源码和最终的实现效果

XJ200012的博客 1543

JMeter 压测实战全教程

脚本结构:测试计划 → 线程组 → HTTP 请求 → 监听器运行方式:图形化调试,命令行生产压测核心指标:QPS、RT、错误率、CPU、GC。

weixin_48309090的博客 652

YOLOv11改进 | 注意力篇 | YOLOv11引入24年ECCV的自调制特征聚合注意力模块(SMFA),并构建C2PSA_SMFA

1.SMFA介绍1.1 摘要:基于Transformer的图像复原方法由于Transformer的自注意(self-attention,SA)特性能够更好地挖掘非局部信息,从而获得更好的高分辨率图像重建效果,因此具有重要的应用价值。然而,关键点积SA需要大量的计算资源,这限制了其在低功耗器件中的应用。此外,模拟退火机制的低通特性限制了其捕获局部细节的能力,从而导致平滑的重建结果。

tsg6698的博客 952

Kotaemon 文档聊天故障排除完整指南:从启动失败到聊天无响应的分层排查法

启动脚本跑完一片空白、HuggingFace 空间构建卡在 Building 一动不动、文件点"Upload and Index"后毫无反应、或者聊天框一直停在 Thinking...——这些问题看起来五花八门,但九成能归到五层里的某一层:启动层、模型层、数据层、对话层、以及最深层的日志与配置。本文覆盖 kotaemon(一个开源的 RAG 文档聊天工具)从安装到对话的 5 类常见故障,教你先判断

gitblog_00642的博客 862

Kaggle赛题总结:Enefit - Predict Energy Behavior of Prosumers

竞赛旨在解决能源不平衡的问题,即预计使用的能源与实际使用或产生的能源不符。自发自用者是既消耗又产生能源的个体,他们在造成能源不平衡方面起到了重要作用。尽管他们只占所有能源消费者的一小部分,但他们不可预测的能源使用行为给能源公司带来了物流和财务问题。如果不加以解决,可能会导致运营成本增加、电网不稳定以及能源资源的低效利用。如果这个问题得到有效解决,将显著降低不平衡成本,提高电网的可靠性,并使自发自用者更高效和可持续地融入能源系统中。

猫敷雪 741

为什么ExpandableCardView是Material Design最佳实践?设计原理与源码分析

ExpandableCardView是一款专为Android平台设计的轻量级可扩展卡片组件,它完美融合了Material Design的核心设计理念与实用功能,为开发者提供了简单而强大的界面交互解决方案。本文将深入解析其设计原理与源码实现,揭示它为何能成为Material Design最佳实践的典范。 ## 🌟 Material Design核心特性的完美诠释 Material Design

gitblog_00685的博客 1078

最优化方法与数学建模

在本篇博客中,我们将探讨最优化方法在数学建模中的应用。首先,我们将介绍几种常见的最优化方法,如梯度下降、牛顿法和遗传算法。接着,我们将详细阐述这些方法的原理和算法。最后,我们将通过一个数学建模案例,展示如何使用Matlab实现这些方法。本文旨在为大家提供一个清晰的思路,以便更好地理解和应用最优化方法。

YOLO 439

把复杂计算推到数据库里:ABAP CDS View Table Function 从原理到落地实践

摘要:本文深入解析ABAP CDS Table Function技术,重点探讨其在复杂业务场景下的应用价值。当CDS View无法满足窗口函数、递归计算等高级需求时,Table Function通过结合CDS类型系统与AMDP的数据库原生计算能力,成为关键解决方案。文章详细介绍了Table Function的架构设计(CDS实体声明+AMDP实现)、客户端处理机制、开发传输流程中的注意事项,并通过航班数据示例展示最小实现闭环。这项技术特别适用于需要将复杂计算下推到数据库层的场景,能显著提升RAP和OData

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2297

Android之Material Design风格相关控件小结

要使用Material Design风格控件,首先需要在Gradle中加入Support Design Library,例如: implementation 'com.android.support:design:28.0.0' 1.CoordinatorLayout 1.1.CoordinatorLayout+AppBarLayout 布局文件代码: <?xml version="1.0" encoding="utf-8"?> <android.support.design

Tiger的专栏 377

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

告别复杂折叠布局:Android ExpansionPanel 优雅实现指南

你还在为Android应用中的折叠面板实现而烦恼吗?手动处理展开/折叠动画、管理多个面板状态、适配RecyclerView复杂场景——这些问题是否耗费了你大量开发时间?本文将带你全面掌握ExpansionPanel开源库的使用技巧,从基础集成到高级特性,从XML布局到RecyclerView优化,让你轻松实现Material Design风格的折叠面板,提升用户体验与开发效率。 读完本文你将获得...

gitblog_00943的博客 441

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Material Design风格折叠标题、沉浸式、抽屉等效果

难点:在最折叠标题的时候,要实现沉浸式效果,碰到了大问题,给toolbar设置fistsystemwindows的时候,发现不能再界面正确的显示高度,而标题上方的大图是要求沉浸式效果,由此想到办法,给toolbar设置padding距离,使其刚刚好在状态栏下放,其他控件也不需要使用fistsystemwindows属性。 个人意见:抽屉控件使用方便,但是toolbar使用非常不便,不如自定义,下

zhan10001的博客 1310

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Material Design 3图标系统终极指南:如何在Jetpack Compose中完美使用Material Symbols

Material Design 3图标系统为Android开发者带来了全新的设计体验,而Accompanist项目则提供了强大的工具支持,让您在Jetpack Compose中轻松集成和使用Material Symbols图标。🎨 ## 什么是Material Design 3图标系统? Material Design 3是Google推出的最新设计语言,其图标系统(Material Sym

gitblog_00622的博客 1239

Android第一行代码——第13章Material Design实战

目录什么是Material DesignToolbar 什么是Material Design Material Design 是谷歌的一套全新的界面设计语言,包含了视觉,运动,互动效果等特性。 Design Support库,将Material Design中最具代表性的一些控件和效果进行了封装。 Toolbar Toolabr继承了ActionBar的所有功能,,灵活性很高,而且可配合其他控件来完成一些Material Design效果。 1.更改程序的ActionBar主题 2.在布局中添加Toolba

haazzz的博客 758
上一篇: Android开发实战之简单音乐播放器
下一篇: Android开发实战之底部Dialog弹出效果
diebing0439
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值