实现折叠工具栏CollapsingToolbarLayout(折叠工具栏布局)
一、相关知识点介绍
coordinatorLayout常见的用法就是:给它的一个子元素A设置一个layout_scrollFlags的属性,然后给另外一个子元素B设置一个layout_behavior=”@string/appbar_scrolling_view_behavior”的属性,这个子元素B一般是一个可以滑动的控件,比如RecyclerView、NestedScrollView等,那么当子元素B滑动的时候,子元素A就会根据其layout_scrollFlags的属性值而做出不同的改变,所以我们要为CollapsingToolbarLayout设置layout_scrollFlags属性。
collapsingToolbarLayout一般不会单独出现在布局文件中,而是作为另一个控件CoordinatorLayout的子元素出现,CoordinatorLayout(协调布局)这个控件很强大, design库的动态效果都依赖于该控件。
使用这些控件时,需要引入Android Design Library这个库,同时地,我们需要把app的主题也要做相应的修改以便适应这个控件,所以我们也需要appcompat这个库,引入cardview库,那么我们在build.gradle文件中引入如下:
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'compile 'com.android.support:design:26.0.0-alpha1'compile 'com.android.support:cardview-v7:26.0.0-alpha1'
2).修改style.xml文件,用AppCompat兼容库中的主题,且设置成NoActionBar(没有活动栏)
注意事项:
item的name是colorPrimary而不是android:colorPrimary
<resources><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- Customize your theme here. --><item name="colorPrimary">#269fe2</item><item name="colorPrimaryDark">#3A5FCD</item></style>
</resources>
3).字符串资源文件string.xml
<resources><string name="app_name">折叠工具栏</string><string name="content">Learn and Share Android,Learn and Share Android,Learn and Share Android,Learn and Share Android,Learn and Share Android</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"xmlns:app="http://schemas.android.com/apk/res-auto"><android.support.design.widget.AppBarLayoutandroid:id="@+id/app_bar"android:layout_width="match_parent"android:layout_height="200dp"><!-- app:contentScrim 设置当工具栏收缩一定程度时所展示的主体颜色,--><android.support.design.widget.CollapsingToolbarLayoutandroid:id="@+id/collapsing_toolbar_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:minHeight="200dp"app:collapsedTitleGravity="left"app:expandedTitleMarginStart="10dp"app:expandedTitleMarginEnd="10dp"app:contentScrim="?attr/colorPrimary"app:layout_scrollFlags="scroll|exitUntilCollapsed"><!--ImageView应当方Toolbar上面,因为CollapsingToolbarLayout是帧式布 局,如方下面就在最上层,会被覆盖--><ImageViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:src="@mipmap/ic_bg"android:scaleType="centerCrop"app:layout_collapseMode="parallax"app:layout_collapseParallaxMultiplier="0.3"/><!--这里工具栏颜色默认是透明,当工具栏折叠后CollapsingToolbarLayout的颜色充当Toolbar背景颜色--><android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"app:layout_collapseMode="pin"></android.support.v7.widget.Toolbar></android.support.design.widget.CollapsingToolbarLayout></android.support.design.widget.AppBarLayout><android.support.v4.widget.NestedScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:paddingTop="24dp"><include layout="@layout/item_card"/><include layout="@layout/item_card"/><include layout="@layout/item_card"/><include layout="@layout/item_card"/><include layout="@layout/item_card"/><include layout="@layout/item_card"/></LinearLayout></android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"app:contentPadding="10dp"app:cardElevation="10dp"app:cardCornerRadius="10dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Card"android:textSize="20sp" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="@string/content"/>
</android.support.v7.widget.CardView>
public class MainActivity extends AppCompatActivity {Toolbar toolbar;CollapsingToolbarLayout mCollapsingToolbarLayout;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);toolbar = (Toolbar) findViewById(R.id.toolbar);setSupportActionBar(toolbar);mCollapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar_layout);mCollapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE);mCollapsingToolbarLayout.setExpandedTitleColor(Color.WHITE);}
}
实现折叠工具栏CollapsingToolbarLayout(折叠工具栏布局)相关推荐
- android 伸缩工具栏,看,这个工具栏能伸缩折叠——Android CollapsingToolbarLayout使用介绍...
我非常喜欢Material Design里折叠工具栏的效果,bilibili Android客户端视频详情页就是采用的这种设计.这篇文章的第二部分我们就通过简单的模仿bilibili视频详情页的实现来 ...
- php 折叠菜单,SlashdotMenu 折叠菜单
简明现代魔法 -> JavaScript -> SlashdotMenu 折叠菜单 SlashdotMenu 折叠菜单 2009-08-19 Slashdot Menu效果演示 控制菜单的 ...
- 华为5g鸿蒙折叠,华为5G折叠概念新机:内折叠+麒麟9000+鸿蒙OS 这才是华为的实力...
从手机二十多年的发展历史来看,现在很多形态各异的智能手机,其设计思路与功能机时代一样,比如三星Fold的折叠手机,就和功能机时代的翻盖手机类似,又或者OPPO的X 2021卷轴屏概念机,则和功能机时代 ...
- 华为5g鸿蒙折叠,华为5G折叠概念新机:麒麟9000+鸿蒙OS 这才是华为的实力
从手机二十多年的发展历史来看,现在很多形态各异的智能手机,其设计思路与功能机时代一样,比如三星Fold的折叠手机,就和功能机时代的翻盖手机类似,又或者OPPO的X 2021卷轴屏概念机,则和功能机时代 ...
- ATL 实现定制的 IE 浏览器栏、工具栏和桌面工具栏
下载源代码 关键字:Band,Desk Band,Explorer Band,Tool Band,浏览器栏,工具栏,桌面工具栏 一.引言 最近,由于工作的要求,我需要在 IE 上做一些开发工作.于是在 ...
- 零基础Bootstrap入门教程(25)--折叠面板、折叠面板导航
点此查看 所有教程.项目.源码导航 本文目录 1. 概述 2. 折叠面板 3. 折叠面板导航 4. 小结 1. 概述 上一篇我们讲述了折叠插件的用法,可以将任意的div元素包含的内容进行动态的折叠/显 ...
- android 实现控件搜索折叠效果 Animation动画折叠和普通折叠
android 实现控件搜索折叠效果 Animation动画折叠和普通控件直接折叠效果: 原理很简单,都是获取对应的高度,通过实现高度变化而改变显示效果: 话不多说直接上代码 1.普通折叠效果,以下是 ...
- 物理-控制折叠:空间折叠
ylbtech-物理-控制折叠:空间折叠 空间折叠是一种因为强大的引力使空间发生扭曲的现象.这种现象是真实存在的,因而在理论上只要能达到一定的引力就能使空间发生弯曲,就好比要从一张平整的纸一端到另一端 ...
- 计算机菜单右侧桌面,桌面工具栏怎么还原?工具栏在右边怎么办
新手们在使用电脑的过程中总有这样那样的问题出现,尽管是很简单的问题,但是对于新手来说,一时也想不到对策,桌面工具栏怎么还原的问题则是其中一个再简单不过的问题了.工具栏在右边怎么办.工具栏怎么还原,这一 ...
- CollapsingToolbarLayout折叠toolbar的使用说明
快速创建方法:(new------activity-----scrollactivity) 一般可以看到有这样几个效果: 1.背景图片渐渐消失变为主题颜色 2.FloatingActionButto ...
最新文章
- 云计算技术都要学什么?教你分清公有云、私有云和混合云
- 度量学习和pytorch-metric-learning的使用
- 数据库Sqlite3
- 《Python Cookbook 3rd》笔记(4.16):迭代器代替 while 无限循环
- Redis:分布式锁Watch
- java抽象类_Java抽象类
- Java8函数式编程详解
- B站网站后台工程源码泄露 用户信息还安全吗?
- jQuery 添加 input 表单提交 无数据
- 数字信号第二章freqz函数作业
- Python网络数据采集的方法
- linux parallel指令参数,GNU Parallel的具体使用
- 借助Amazon EMR与外部KDC进行身份认证,有效集成业务场景
- 产品 电信nb接口调用_电信物联网平台NBIoT使用Postman模拟测试接口
- 自定义异常:运行时期和编译时期的区别
- was not registered for synchronization because错误
- 数据结构与算法-二叉排序树
- 领导管理团队的3个正确方法
- BigDecimal比较建议用compareTo
- 微软图形控件(Chart或MSchart)的用法