Android开发中在某些界面为了保证显示一致性,可能需要调整statusBar的背景色。...方法二:(针对AppCompatActivity) AppCompatActivity需要使用Toolbar来替代ActionBar实现状态栏渐变的效果。 1....使用Toolbar来替代ActionBar,但toolbar高度需要设置为actionbar和statusbar高度的总和。...widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/statusbar_and_actionbar_height...定义的是statusbar的渐变色颜色,与方法一中定义的一样。
此篇文章主要讲解关于沉浸式状态栏,程序全屏和分清状态栏、ActionBar、ToolBar 的一些知识内容。主要是讲解如何适配状态栏。...关于 ActionBar 和 ToolBar 的使用没有细致讲解。...其实这篇主要是讲解适配状态栏的,在这其中可能有些读者对状态栏(StatusBar)、ActionBar、ToolBar、TitleBar有点混淆或者感觉很混乱,所以就有了这其中的内容。...关于 TitleBar、ActionBar、ToolBar、StatusBar 首先强调一点 StatusBar 和前面这几种 Bar 是完全的两回事,其实 statusbar 应该写成 status...简单ActionBar.png 值得注意的是 TitleBar 和 ActionBar 在本质上是一样的,他们都不是我们常用的控件的形式,而是绑定在 DecorView 中的,可以通过 getWindow
keyWindow.windowScene.statusBarManager.statusBarFrame; } 1.2 适配特色场景:状态是有透明或者半透明的效果的场景...但是如果有状态是有透明或者半透明的效果,上面这个方法还是不能胜任,越透明越明显;经过一番查找,终于发现问题: 问题: 1、iOS 13之前,可以通过valueForKey 获取UIApplication..."] valueForKey:@"statusBar"]拿到的statusBar永远是同一个对象。...通过上面的代码获取statusBar时,发现每次每次获取都调用 alloc:init的方法,重新生成一个statusBar;然后添加到UIApplication的keyWindow上,再设置背景颜色。...; NSLog(@"tabBar高度:%f",tabBarHeight); //2.在非tabBarController中使用 UITabBarController *tabBarVC = [[UITabBarController
比如“同步”和“异步”就是相对的概念,因为我们从来不会说这是一个“同步异步……”;同样“堵塞”和“非堵塞”也是一对相对的概念,我们也不会说那是一个“堵塞非堵塞……”。...然后我们将探讨这两对相对的概念的区别,比如“同步”和“堵塞”的区别,“异步”和“非堵塞”的区别。最后我们将结合“函数调用”和“I/O”来探讨组合出的概念。...于是我们在百度百科里看到如下的解释 同步(英语:Synchronization),指对在一个系统中所发生的事件(event)之间进行协调,在时间上出现一致性与统一化的现象。.../非堵塞 假如我们只有上述知识,还是很难将“同步”和“堵塞”分清楚,也不太能说清“异步”和“非堵塞”的区别。...可见“同步调用”是由“堵塞的调用”和“非堵塞的调用”组成,其过程可以没有“非堵塞的调用”,但是必须至少有一个“堵塞的调用”。而“异步调用”和“非堵塞调用”则可以视为一个意思。
相关链接 : 递归和栈的关系 以树的遍历为例 先序遍历: 伪代码 void preView(Node node){ print(node.value); // 1 if(node.left...这里的问题就是:栈帧无法为我们提供足够的信息,让我们正确的继续用栈执行递归。 如果编译器编译上述的伪代码,那么在函数栈帧中会保存要返回的地址。...在上述情景中,节点2的栈帧中不应该只保存节点2,应该还要保存2执行到第几行了。 继续下去是要执行第二行还是执行第三行(返回的地址)。...递归子函数的栈帧弹出后,返回到针对当前节点的栈帧:有以下情况 0,如果这个int变量为0,则左右子节点都未被递归调用 1,如果这个int变量为1,则把右子节点对应栈帧入栈,并且把当前栈帧中这个int变量修改成...2 2,如果这个int变量为2,则直接把当前栈帧弹出 于是当2的节点对应栈帧出栈后,5的节点对应的栈帧就有了方向,知道要把右子包成一个栈帧入栈 ?
本文假设读者已经了解着色模式和全屏模式(沉浸模式)。...对于 Android 4.4 + ( >= 4.4 且 < 5.0 ) 这种情况下,我们启用 4.4 新增的半透明状态栏,通过修改当前 Activity 的根布局的 background 和 paddingTop...来动态切换『着色模式』和全屏模式。...对于 Android 4.4 + ( >= 4.4 且 < 5.0 ) 的情况,我这里并没有使用网上一些教程:向 DecorView 中添加一个高度为状态栏的高度 View,也就没有黑线的问题,而是通过修改根布局的背景色和根布局的...操作过程中页面并没有配合使用 ActionBar ,使用的主题是 Theme.AppCompat.Light.NoActionBar ,不确定是否会有意想不到的效果,请在配合 ActionBar 时先进行测试或者参考文末的相关资料
iOS 7 NavigationBar的下方默认是有一条阴影的,如果想要 NavigationBar 和下面内容的背景颜色融为一体的话,就要去掉这个阴影。...的颜色 iOS7以后,status bar 的背景颜色变成了透明色,而且系统会根据 app的颜色自动改变 status bar 的字体颜色(黑和白)。...但是这个自动改变的字体颜色并不一定和所有的 app 都搭配,比如我们 app 的主题色是稍微浅一丢丢的蓝,但是系统匹配的 status bar 的字体颜色就是黑色,看起来就很不爽,所以就要强制将其改为白色...有时候为了实现沉浸式设计,比如 app 首次打开的引导页,需要隐藏整个 StatusBar,方法如下: 状态栏的高度是20 方法一: 和改变 StatusBar 颜色一样,在 Info.plist 中的...标签栏TableBar那些事儿 2.1 调色 可以完全参考导航栏的,几乎雷同。 2.2 关闭半透明效果 一旦关闭标签栏的半透明效果,控制器的view就不会到达屏幕最底部了,而是到了标签栏的紧上方。
生命的定义是什么? 其中最重要的依据之一便是——产生新的后代。 病毒作为一种特殊的生命形式,似乎正毗邻生命与非生命之间的界限,人类也一直寻找病毒的具体起源。...这些巨型噬菌体的发现填补了非活体噬菌体与细菌、古菌之间的空白。 这些噬菌体来自近30个不同的环境(如早产儿、孕妇肠道、西藏温泉、医院病房、海洋、湖泊和地下深处等)。...除了为巨型噬菌体与同类、宿主菌之间的战争提供新的见解之外,这些新发现还对人类疾病的治疗和预防产生的影响。...文章第一作者Sachdeva说道:“通常,区分生命和非生命的依据是核糖体和翻译能力;这是区分病毒和细菌、非生命和生命的主要定义特征之一,然而我们的研究发现一些大型噬菌体也有这样的翻译机制,所以这些发现让生命和非生命的界限更加模糊...他们的研究结果表明巨型噬菌体携带有CRISPR-Cas系统和核糖体翻译相关基因,使得病毒和细菌、非生命和生命之间的界限更为模糊不清。
Android从4.4(KitKat) 开始进行了一些视觉上的改善和提升,其中包括让状态栏(Status Bar)和下方导航栏(Navigation Bar)进行半透明处理,可以使APP内容向上下延伸,...*这里解释个误区,国内开发者和设计师经常把这种半透明效果称为沉浸式状态栏这是不对的, 沉浸式Immersive mode,官方解释为hiding all system UI根本不是这种半透明的效果。...下面说说如何使用这种效果: 1、在onCreate里面代码设置半透明的属性,由于只有Android 4.4以上才支持这种效果,所以代码需要判断下 if(Build.VERSION.SDK_INT =...-- Customize your theme here. -- </style 3、这个部分需要留意一下,如果希望APP的显示内容正常和滚动透明化需要加上android:fitsSystemWindows...=”true”和android:clipToPadding=”false”的属性,建议你把这两个属性好好试试加上与否的区别。
难点在于: 头部的背景图在推上去的过程中,慢慢的变得不可见了,整个区域的颜色变成的暗黑色,然后标题出现了。 StatusBar变的透明,且空间可以被利用起来,看我们的图片就顶到了顶 了。...我们的viewpager推到actionbar的下方的时候,就固定在了actionbar的下方,不能在往上面推了。...1、头部背景和标题的渐隐渐现 首先,我们来分析第一个问题,头部的背景图在推上去的过程中,慢慢的变得不可见了,这种听起来好像是某种collapse,因此,很容易让人想到CollapsingToolbarLayout...2、将statusBar变为透明,且利用他的空间来放我们的布局内容。...toolbar的高度为toolbar的高度加上StatusBar的高度。
getTop() 之间的联系 View 的 getScroolY 和 View 的 scrollTo() 和 scrollBy() event.getY 和 event.getRawY() 扩展,...怎样获取状态栏(StatusBar)和标题栏(titleBar)的高度 基本概念 ?...从这张图片我们可以看到 在Android中,当ActionBar存在的情况下, 屏幕的 高度=状态栏+应用区域的高度=状态栏的 高度+(标题栏的 高度+View 绘制区域的高度) 当ActionBar...getY(), getTranslationY() 和 getTop() 之间的联 getY() Added in API level 14 The visual y position of...扩展,怎样获取状态栏(StatusBar)和标题栏(titleBar)的高度 public void onWindowFocusChanged(boolean hasFocus) {
,被覆盖了,它们共同参与显示界面的合成,但是,StatusBar、NavigationBar明显不是属于APP自身UI管理的范畴。...最后看一下translucentFlag,默认情况下,状态栏背景色与translucent半透明效果互斥,半透明就统一用半透明颜色,不会再添加额外颜色。...半透明效果除外(5.0之上,一般不会有TRANSLUCENT功能)),结果就是会看到被覆盖区域的一篇空白。...系统默认Activity中WindowInsets的消费 非悬浮Activity的DecorView默认是全屏的,图中1、2代表着DecorView中添加状体栏、导航栏对应的颜色View,而DecorView...也就是说:‘windowTranslucentStatus’和‘windowTranslucentNavigation’设置为true后就再设置‘statusBarColor’和‘navigationBarColor
“身临其境” 的体验。...Android 4.4 中提供了 IMMERSIVE 和 IMMERSIVE_STICKY 标记, 可以用这两个标记与 SYSTEM_UI_FLAG_HIDE_NAVIGATION 和 SYSTEM_UI_FLAG_FULLSCREEN..., 当用户从屏幕的上方边沿处向下滑动时, 也不会退出该 模式, 但是系统界面 (状态栏、 导航栏) 将会以半透明的效果浮现在应用视图之上 (如下图所示), 只有当用户点击系统界面上的控件时, 才会退出黏性沉浸模式...根据 Android 开发文档中提到, 应用在使用沉浸模式时最好将 ActionBar 设置为 Overlay 模式, 具体设置可以参考这里: https://developer.android.com.../training/basics/actionbar/overlaying.html
保存当前的状态栏、标题栏信息和列表中在屏幕位置的信息,用于恢复到原本的状态。 创建一个黑色背景的FrameLayout,充满屏幕用来承载全屏播放器F,这样全屏播放器F可以在其中执行动画效果。...(); } //保存全屏之前的状态栏和 saveLocationStatus(context, statusBar, actionBar); try { //生成一个播放器,因为继承关系,会创建一个当前列表...,最好还是可以关闭和拖动的(看视频的时候可以快速最小化收起来,不停止,避免尴尬对吧)。...逻辑和实现全屏一样,用系统的content层来承载,不同的是利用margin让视频出现在右下角,这样我们拖动的时候只要改变视频的margin,就可以让视频小窗体在它的父布局内移动啦。 ?...小窗口 /** * 显示小窗口 */ public void showSmallVideo(Point size, final boolean actionBar, final boolean statusBar
是视图的承载器,内部持有一个 DecorView,而这个DecorView才是 view 的根布局。...(应该是设置ActionBar,根据Theme设置),中间的是标题栏(根据Theme设置,有的布局没有),下面的是内容栏。...相关源码扯犊子到这边差不多,可以知道statusbar和navigationBar两者和decorView的关系了,就是他的两个儿子。...计算statusBar和NavigationBar的高度 public class DecorUtil { /** * 请勿在dialog中使用 * *...主题的 android:windowTranslucentStatus 属性, 会影响 contentView 的 padding top
merge标签下的内容,但不做布局计算和调整,从而提高了UI的加载效率。...举个ViewStub实际运用的场景,手机屏幕在竖屏和横屏切换时,有时希望显示不同的布局,比如竖屏显示列表,横屏则显示网格,横竖屏的截图如下: 竖屏的列表方式界面截图 ?...Android定义了一些系统主题,完整定义的参见sdk自带的themes.xml,常用的几种说明如下: Theme.NoTitleBar : 不显示标题栏,即隐藏ActionBar Theme.Light...: 窗口是否不要标题,即不带ActionBar android:windowFullscreen : 窗口是否全屏 android:windowIsTranslucent : 窗口是否半透明 android...从截图可以看到,windowFrame的覆盖区域包括窗口与边框,且窗口对内半透明、对外不透明,而边框对外半透明。
为了我们的app看起来更漂亮,处理下通知栏是很有必要的,下面是沉浸通知栏的一种实现方式。...我们在项目中使用一些通用的方法时,要学会提炼出基础类,供其他类来使用,减少代码重复,增加程序健壮性和可读性。...savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_match_actionbar...tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.statusbar_bg...,我们不要在每个Activity中都重复写这么一段代码,而是要自己定义一个基础的抽象Activity类,用于其他Activity继承,减少代码重复。
一.修改状态栏颜色: 改变状态栏颜色,可以看看这篇文章.传送门:实现状态栏(statusbar)渐变效果其实很简单 传送门实现的效果: 这种方法实现的状态栏变色,没有黑色背景. ?...3) { window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); } } /** * 设置状态栏图标为深色和魅族特定的文字风格...出现的问题: 1.statusbar背景色变成了colorPrimaryDark默认颜色,但是我的配置是白色背景(具体配置代码见最后)....分析原因: setSystemUiVisibility()会刷新view的属性配置.由于statusbar默认使用colorPrimaryDark属性.所以颜色会变回默认颜色 ?...,设置成半透明灰色.
tabBarPosition- 标签栏的位置可以是或'top''bottom' swipeEnabled - 是否允许在标签之间进行滑动 animationEnabled - 是否在更改标签时动画 lazy...initialRoutenoneinitialRoute tabBarOptions for (iOS上的默认标签栏)TabBarBottom activeTintColor - 活动标签的标签和图标颜色...activeBackgroundColor - 活动选项卡的背景颜色 inactiveTintColor - 非活动标签的标签和图标颜色 inactiveBackgroundColor - 非活动标签的背景颜色...for (Android上的默认标签栏)TabBarTop activeTintColor - 活动标签的标签和图标颜色 inactiveTintColor - 非活动标签的标签和图标颜色 showIcon...=> style => borderTopWidth: 0.5, borderTopColor: '#ccc'; 3.导航安卓图标和文字间隙比较大,手动调整小设置:tabBarOptions =>
引言 最近,在做公司一个design折叠效果的时候遇到个问题,就是我们本身app的方法数太多了,dex分包技术还没搞定。不得不尽量缩减一些不必要的包、类。...当我们引入RecyclerView的时候,恰好是压死骆驼的最后一根稻草,故不得不采用其他方案来代替RecyclerView 和 CollapsingToolbarLayout实现的折叠效果。...android:fitsSystemWindows,经本人代码测试,表示CollapsingToolbarLayout的上边界是否扩展到statusbar,这里如果想使用透明的statusbar,这里更新下应该该布局的根布局的该属性为...true,不过这里兼容性还是存在问题的,特别是android 4.4版本的折叠布局的透明statusbar,不知道改为有没更好的方式。...match_parent" android:layout_height="210dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar
领取专属 10元无门槛券
手把手带您无忧上云