https://stackoverflow.com/questions/22192291/how-to-change-the-status-bar-color-...
4.4 以上要做所谓沉浸式,其实不是真正意义上的沉浸式,只是一种透明状态栏。 而由于 Android API 的不同,需要考虑 4.4、5.0、6.0 前后的不同。...适配 5.0 和 6.0 以上 应用风格如果是白色的,想把状态栏也设置成白色的,会导致状态栏上的图标文字看不见了,经查询发现 6.0 以上可以修改状态栏图标文字风格,可以改成黑的,但是 6.0 以下版本无解...适配 4.4 4.4 版本需要透明状态栏,将内容往下移,然后再加一个和状态栏一样大小的 View 覆盖到状态栏上面。...因为如果是图片,就不能设置状态栏颜色或者盖个 View 上去,而是让状态栏透明,内容往下,让图片透上去,当然如果是子 View 的图片,还不能 setFitsSystemWindows。...后来考虑将颜色和图片的逻辑分开,因为有图片时要重置的和只是改状态栏颜色的不一样,放一起如果只是改状态栏颜色会走大量无意义的逻辑,当然 4.4 版本也是要将内容往下,也要特殊考虑。
所以,CollapsingToolbarLayout 的使用一定离不开 AppBarLayout 和 Toolbar,并且作为 AppBarLayout 的直接子视图使用。...attr/colorPrimaryDark",即style样式中定义的沉浸式状态栏颜色。...比如上述效果图中的图片;pin,固定别针效果,比如上图中的Toolbar;layout_collapseParallaxMultiplier不折叠视差系数,配合parallax模式使用,取值有点类似alpha(不透明度...作为AppBarLayout的直接子控件,CollapsingToolbarLayout包裹Header部分的ImageView和Toolbar,并分别设置二者的折叠模式。...和values-v21中style样式的statusBarColor和windowDrawsSystemBarBackgrounds属性来完成状态栏的背景色变化,详情参考源码即可;通过layout_anchor
就表示该控件会出现在系统状态栏里; 2.2 在程序的主题中将状态栏颜色指定成透明色; 在主题中将android:statusBarColor属性的值指定成@android:color...向上拖动水果图片,背景图上的标题会慢慢缩小,而且会产生错位偏移的效果,toolbar的位置和图片还会产生透明度的变化等等,效果十分炫酷。 ? ?...所以这里需要一个系统差异型的效果,即 对于Android5.0及之后的系统使用背景图和状态栏融合的模式; 在之前的系统中使用普通的模式; 让背景图和系统状态栏融合,需要借助Android:fitsSystemWindows...这里除了将android:fitsSystemWindows属性设置好,还必须在程序的主题中将状态栏颜色指定成透明色。...然后在FruitAcuvityTheme中将状态栏的颜色指定成透明色, 由于values-v21目录是只有Android5.0及以上的系统才会去读取的, 因此这么声明是没有问题的。
= null) { actionBar.hide(); } 透明顶部状态栏 状态栏默认的颜色是绿色的,很丑,更改颜色可以在theme中修改对应主题的颜色。...当然,个人认为透明状态栏最为美观,下面是实现方式: 1、在gradle中添加依赖 api 'com.readystatesoftware.systembartint:systembartint:1.0.3...*/ public class StatusBarUtil { /** * 修改状态栏为全透明 * * @param activity */...,设置状态栏黑色文字、图标, * 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android * * @param activity * @return...getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); } } /** * 设置状态栏图标为深色和魅族特定的文字风格
其实就是向下滚动时Scrolling View和Child View之间的滚动优先级问题。...对比scroll和scroll | enterAlways设置,发生向下滚动事件时,前者优先滚动Scrolling View,后者优先滚动Child View,当优先滚动的一方已经全部滚进屏幕之后,另一方才开始滚动...这里涉及到Child View的高度和最小高度,向下滚动时,Child View先向下滚动最小高度值,然后Scrolling View开始滚动,到达边界时,Child View再向下滚动,直至显示完全。...属性contentScrim 设置当完全CollapsingToolbarLayout折叠(收缩)后的背景颜色。...在内容滚动时,CollapsingToolbarLayout中的View(比如ImageView)也可以同时滚动,实现视差滚动效果,通常和layout_collapseParallaxMultiplier
StatusBar变的透明,且空间可以被利用起来,看我们的图片就顶到了顶 了。 我们的viewpager推到actionbar的下方的时候,就固定在了actionbar的下方,不能在往上面推了。...1、头部背景和标题的渐隐渐现 首先,我们来分析第一个问题,头部的背景图在推上去的过程中,慢慢的变得不可见了,这种听起来好像是某种collapse,因此,很容易让人想到CollapsingToolbarLayout...,并且改变返回按钮的图片: collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE); //collapsingToolbarLayout.setExpandedTitleColor...2、将statusBar变为透明,且利用他的空间来放我们的布局内容。.../** * 使状态栏透明,并覆盖状态栏,对API大于19的显示正常,但小于的界面扩充到状态栏,但状态栏不为透明 */ @TargetApi(Build.VERSION_CODES.KITKAT
Android手机顶部用于显示各种通知和状态信息的这个栏叫做状态栏。 通常情况下,我们应用程序的内容都是显示在状态栏下方的。...那么借助android:fitsSystemWindows属性是如何实现沉浸式状态栏效果的呢?这个属性为什么又总是时灵时不灵呢?接下来我们就来一步步学习和揭秘。...首先为了验证沉浸式状态栏的效果,需要将系统的状态栏改成透明色,代码如下所示: class MainActivity : AppCompatActivity() { override fun onCreate...让布局的内容延伸到状态栏的背后,如果一些可交互的控件被状态栏遮挡了怎么办?这样这些控件可能就无法点击和交互了。...,并且给CollapsingToolbarLayout也设置了android:fitsSystemWindows属性,这样CollapsingToolbarLayout就可以将内容延申到状态栏区域了。
这篇文章其实我一直在想,是写还是不写,因为关于讲 CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,Toolbar,TabLayout 等这些控件的使用...这次关于 CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,Toolbar,TabLayout 等这些控件的用法我就不讲了,不懂的或者不清楚的就去看...原图是沉浸状态栏,你的这个模仿的效果图没有做到。 原图加载毛玻璃的效果比较快,你的这个打开app白屏好几秒。...解决方法 第一个问题 大致的方法过程就是如下: 配置window的各项参数,使状态栏透明 ? 设置根布局的参数 ? 添加半透明矩形条 ?...这就是Material Design系列第六篇之《Android Material Design系列之CoordinatorLayout,CollapsingToolbarLayout等》。
关于沉浸式和透明式概念说明 在谷歌官方中: 在 Android 4.4 Google 引入了可以在阅读电子书、玩游戏、看电影时支持全屏模式(Immersive Mode 沉浸模式),同时也支持更改修改状态栏的颜色...上面也说了这种错误的叫法是不对的,没有沉浸式状态栏 ,这种样式只是将内容 UI 设置成了全屏,把状态栏设置成了透明。...所以这种是叫做 状态栏透明模式 设置透明状态栏 先来几组效果图,从效果 1 开始逐渐递进演示,这里面的几个重要参数会在后面具体说明,这里先说明现象 1.内容布局全屏 在 Android 4.1 以上设置去除状态栏或者认为是状态栏被内容布局遮挡了...这个时候我们只要设置状态栏为透明。就是我们想要的透明状态栏的那种效果了。 效果图: ?...Android 4.4 修改状态栏颜色 // 将状态栏设置为透明(需要 API 19) 设置成这种模式后,状态栏会变成透明,我们的内容布局(只是我们 Activity 对应的布局,不包含 Window
当我们引入RecyclerView的时候,恰好是压死骆驼的最后一根稻草,故不得不采用其他方案来代替RecyclerView 和 CollapsingToolbarLayout实现的折叠效果。...android:fitsSystemWindows,经本人代码测试,表示CollapsingToolbarLayout的上边界是否扩展到statusbar,这里如果想使用透明的statusbar,这里更新下应该该布局的根布局的该属性为...true,不过这里兼容性还是存在问题的,特别是android 4.4版本的折叠布局的透明statusbar,不知道改为有没更好的方式。...app:contentScrim 表示CollapsingToolbarLayout折叠以后,toolbar的颜色。...TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics()); } Rect outRect = new Rect(); //状态栏高度
Material Design之CollapsingToolbarLayout 相关属性和方法介绍 转载请以链接形式标明出处: http://blog.csdn.net/lxk_1993/article...一张没图片的和一张有图片的,图片太丑别怪我。还是把图换了吧,怕你们打我。 开始无知的我还以为是监听 onTouchListener 根据滑动的距离和位置来改变显示效果来实现的。...在折叠的时候 状态栏的背景颜色 10。...parallax - 设置为这个模式时,在内容滚动时,CollapsingToolbarLayout中的View(比如ImageView)也可以同时滚动,实现视差滚动效果,通常和layout_collapseParallaxMultiplier...setExpandedTitleGravity(int gravity) getExpandedTitleGravity() //获取和设置状态栏的颜色 getStatusBarScrim()
java.lang.reflect.Field; import java.lang.reflect.Method; public class StatusBarUtils { /** * 兼容状态栏透明...= Build.VERSION_CODES.LOLLIPOP) { // 透明状态栏 activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS...result = 3; } } return result; } /** * 设置状态栏图标为深色和魅族特定的文字风格...if (dark) { extraFlagField.invoke(window, darkModeFlag, darkModeFlag);//状态栏透明且黑色字体...DataBindingUtil.setContentView(this, R.layout.activity_main);//绑定视图 StatusBarUtils.setImmersionStateMode(this);//透明状态栏
控件互动实现滑动,总结就是CoordinatorLayout控件和app:layout_behavior来进行互动,进而CoordinatorLayout的子控件和app:layout_behavior...这是layout_srcollFlags里可以设置的各个属性的解释,考虑文章的重点是模仿支付宝所以没有篇幅和每个属性都给个效果图,所以各属性你们有空还要自己试一试,这样子才能掌握更好。...3.CollapsingToolbarLayout 是用来对Toolbar进行再次包装的ViewGroup,主要是用于实现折叠的App Bar效果。...2.通过setContentScrim(Drawable)来设置达到某一个状态之后的出现的效果3.通过setStatusBarScrim(Drawable)来设置达到某一个状态之后的状态栏出现的效果...当alpha小于0的时候是执行展开的toolbar的透明度效果,反之大于0的时候是闭合时toolbar的透明图效果。 剩下的看源码吧 如果对你有帮助就请给我给星星或喜欢吧
状态栏是 漂浮在这个图片上的。...实现透明状态栏的方法 适配Android 4.4 +的方法: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {...setContentView(R.layout.activity_main); } 上面的代码中我使用 StatusbarUtils 这个辅助类,这个辅助类调用了 具体的实现透明状态栏的方法...* Created by zhangyunfei on 16/6/17. */ public class StatusbarUtils { /** * 启用 透明状态栏...它会使得指定的view自动增加“一个状态栏高度的上间距”,也就是说,它会在保证你的view位于状态栏下方,而不是底下。
里面switch语句处理的操作也是MotionEvent最基本的操作。这里主要看一下从上往下滑动的事件是怎么计算的:
沉浸式状态栏大家都很熟悉,即 APP 界面图片延伸到状态栏, 应用本身沉浸于状态栏,即顶部不会默认展示系统的黑条。和尚我技术有限,理解不透彻,仅分享一下自己应用测试中可以呈现的几种样式。 ?...widget.Toolbar> 设置主题样式,一般是三个 style.xml 文件,分别是 values (默认)、 values-v19 (处理 Android4.4 版本) 和...values-v21 (处理 Android5.0以后的半透明); values style.xml true false Java 代码中处理导航栏变黑和透明的主题版本判断...android:src="@mipmap/icon_bg" /> ---- Tips1:还有一种样式与沉浸式展示效果一样,就是折叠布局 CollapsingToolbarLayout
enter 和 exit 的概念 这两个直译为中文就是进入和离开。这里的主语是 AppBarLayout 中的内容,宾语是 CoordinatorLayout。 ?...Collapsing Title 可折叠的标题 Content Scrim 内容纱布 Status bar scrim 状态栏纱布 Parallax scrolling children 子 View...AppBarLayout 和 CollapsingToolbarLayout 已经提供给 Toolbar 很炫丽的动作效果,但是,如果你认为这还不够,如果你想一种更直接的视觉反馈,这种反馈标志 CollapsingToolbarLayout...void setContentScrimResource (int resId) void setContentScrim (Drawable drawable) Status bar scrim 状态栏纱布...> 在布局文件中添加一个图标,然后监听 AppBarLayout 的滑动来改变自身的透明度。
文章目录 前言 一、移除顶部状态栏空白 二、帧布局组件 三、透明度组件 四、监听滚动事件 五、完整代码示例 六、相关资源 前言 在上一篇博客 【Flutter】Banner 轮播组件 ( flutter_swiper...插件 | Swiper 组件 ) 基础上进行开发 ; 一、移除顶部状态栏空白 ---- 在 Flutter 界面上方 , 默认有个状态栏 , 显示时间 , 电量 , 网络 , 信号强度等信息 , 这个状态栏是半透明的...; 可以使用 MediaQuery 组件移除顶部状态栏空白部分 ; 调用 MediaQuery.removePadding 方法 , 第一个参数 context 设置成 BuildContext context.../ 100.0; // 处理小于 0 和 大于 1 极端情况 // 如果只处于 0 ~ 1 之间 , 不做处理.../ 100.0; // 处理小于 0 和 大于 1 极端情况 // 如果只处于 0 ~ 1 之间 , 不做处理
Header View + RecyclerView 实现方式,使用 CoordinatorLayout 把 header 抽离出 RecyclerView,并做到上下滑联动,这样 Java 层代码就能简单和简洁很多...如果想要列表上滑的时候,状态栏跟随着滑动显示出阴影效果,可以在 FrameLayout 外再包裹一层 android.support.design.widget.CollapsingToolbarLayout...可以实现如图效果(注意状态栏阴影): ? 由于受制于微信公众平台内容字数的限制,无法展现源码,源码和具体内容,欢迎大家访问drakeet的博客。
领取专属 10元无门槛券
手把手带您无忧上云