WindowInsetsControllerCompat 是 Android 中的一个类,用于更方便地处理和控制窗口插入 (Window Insets),例如状态栏和导航栏的显示和隐藏。...主要功能 1、 显示和隐藏状态栏、导航栏: 使用 WindowInsetsControllerCompat,你可以轻松地控制状态栏和导航栏的显示与隐藏。...同样,我们可以通过以下代码来显示状态栏和导航栏。...状态栏和导航栏)在隐藏和显示时的行为。...与传统方法相比,它更现代、更灵活,同时也更兼容不同的 Android 版本。因此,在处理状态栏、导航栏的显示和样式时,建议使用 WindowInsetsControllerCompat。
// 获取状态栏高度 var statuBar = uni.getSystemInfoSync().statusBarHeight; // 获取胶囊数据 var custom = wx.getMenuButtonBoundingClientRect...= custom.top customBottom = cutsom.bottom customLeft = custom.left customRight = custom.right // 获取导航栏...(标题栏高度)高度 = 胶囊高度+(顶部距离-状态栏高度)*2 var navigationBarHeight = custom.height + (custom.top - statuBar) *...2 // 总体高度 = 状态栏高度+导航栏高度 var navAllHeight = navigationBarHeight + statuBar
在 Android 应用开发中,有时我们需要知道状态栏和导航栏的高度,以便在布局中进行调整。获取这些高度的方法有几种,每种方法在准确性和兼容性方面有所不同。...获取状态栏高度的方法 方法一:通过资源名称获取 这种方法最常见,也最推荐,具有较高的准确性和兼容性。...4.4W) 以上,但在较新版本的 Android(API 21及以上)中更为准确。...: 0 } 获取导航栏高度的方法 方法一:通过资源名称获取 这种方法和获取状态栏高度的方式类似。...: 0 } 对比和总结 1、 通过资源名称获取: 优点:简单、代码兼容性好。 缺点:可能受某些定制 ROM 的影响,准确性在极少数情况下可能有问题。
TabLayout是android.support.design里的一个控件,使用它可以很方便的做出顶部导航和底部导航。类似于这样的,能设置选中时字体的颜色和选中时的图片。 ? ?...首先我们引入compile 'com.android.support:design:23.1.1' 它的用法是: 第一种比较简单,就是文本和一个指示器。..., "第二栏", "第三栏"}); viewpager.setAdapter(adapter); tabLayout.setupWithViewPager(viewpager...以上就是TabLayout和viewpager结合的简单例子。.../nav_home" android:state_selected = "false" /> OK,以上做完就可以了,带图片的底部导航栏就做好了。
设置状态栏背景效果 package com.cy.translucentparent; import android.app.Activity; import android.os.Build;...by lenovo on 2017/4/25. */ public class StatusNavUtils { /** * 状态栏透明去阴影(5.0以上) *...window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } } /** * 导航栏全透明去阴影...window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } } /** * 状态栏...、导航栏全透明去阴影(5.0以上) * * @param activity * @param color_status * @param color_nav
和尚我最近在调整页面状态栏的效果,主要包括沉浸式状态栏和伪沉浸状态栏(同事唠嗑给定义的玩的)。...前段时间整理过一篇 Android 沉浸式状态栏的多种样式,现在和尚我在稍微的补充一下,都是在日常应用中测试整理的。...---- 非 Toolbar 标题栏 就和尚我接触的项目中根据业务不同,不是所有的标题栏都是 Toolbar 标题栏样式,很多是自定义的标题栏样式,为了效果统一,和尚我的解决方案是修改顶部状态栏的颜色为程序的主题色...,戏称为伪沉浸式状态栏。...Tips2: 若配合打开代码中注释的两行,整体的效果是隐藏掉状态栏高度,标题栏上移,如图2所示,在其他相应的场景下很有用。
前言 Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。...所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字和图标会看不清 有一些第三方的系统提供了设置状态栏和状态栏文字、图标颜色的方法,比如小米的MIUI和魅族的...当然,这里面也会有坑,比如 MIUI 提供的修改状态栏字体颜色方法会跟 Android 系统自带的方法冲突,官方说明如下: 关于MIUI状态栏字符颜色逻辑调整说明 经过网上的资料和自己的尝试,MIUI...系统还是同时使用 MIUI 提供的方法和 Android 系统自带的方法来修改状态栏字体颜色比较保险。...基于上面的思考,封装了设置 Android 4.4 以上系统状态栏颜色和状态栏字体、图标颜色的方法: 首先,需要引入 SystemBarTint 库: dependencies { implementation
公司项目中使用了popWindow,并且需求指明了popWindow必须是和Activity类似的全屏模式,并且从页面底部弹出!...当popWindow所有设计完毕后,从底部弹出popWindow,发现设置在popWindow的上的titlebar一部分被压入状态栏的底部了,也就是说全屏是全屏了,但是超过了应有的部分!...解决方案: 为了达到良好的兼容性,我们可以如下变现代码 /** * 用于获取状态栏的高度。 * * @return 返回状态栏高度的像素值。...; String displayId = android.os.Build.DISPLAY; if(!...); -------------------------2015-05-05更新,沉浸式状态栏--------------------------------- public class SystemBarTintManager
也许有时候你会有这样的需求:得到状态栏或者标题栏的高度。 怎么办?...有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。...于是,我们就可以算出状态栏的高度了。...: getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。...int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); //statusBarHeight是上面所求的状态栏的高度
= null) { actionBar.hide(); } 透明顶部状态栏 状态栏默认的颜色是绿色的,很丑,更改颜色可以在theme中修改对应主题的颜色。...当然,个人认为透明状态栏最为美观,下面是实现方式: 1、在gradle中添加依赖 api 'com.readystatesoftware.systembartint:systembartint:1.0.3...,设置状态栏黑色文字、图标, * 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android * * @param activity * @return...* 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android * * @param activity * @param type 1:MIUUI...getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); } } /** * 设置状态栏图标为深色和魅族特定的文字风格
R.color.my_statusbar_color)); https://stackoverflow.com/questions/22192291/how-to-change-the-status-bar-color-in-android
Android开发过程中,特别是新开的项目,底部状态栏的切换使用的频率非常的高,主要的实现方式有: (1)、TabLayout + Fragment (2)、FragmentTabHost + Fragment...} private void initData() { } private void initListener() { //TabLayout切换时导航栏图片处理...在这里插入图片描述 二、使用FragmentTabHost+ Fragment + ViewPager实现 1、实现步骤: (1)、布局文件中定义FragmentTabHost控件 (2)、定义底部菜单栏布局....app.FragmentTabHost> (2)、定义底部菜单栏布局(tab_content.xml) 状态栏切换"即可获取。 --- 小编整理了一份Android电子书籍,需要的童鞋关注公众号回复:"e_books" 即可获取哦!
状态栏全透明步骤: 1,反编译SystemUI.apk 2,SystemUI\res\layout\navigation_bar.xml 找到 将后面的 android:background=”#FF000000...″改为android:background=”#00000000″ 3,SystemUI\res\layout\status_bar.xml 找到 将后面的android:background=”@drawable.../status_bar_background” 改为android:background=”#00000000″ 4,SystemUI\Data\res\values\drawables.xml 找到#...ff000000 改为#00000000 5,反编译android.policy.jar 6,android.policy.jar.out\smali\com\android\internal\policy...android.policy\Data\smali\com\android\internal\policy\impl\keyguard\KeyguardViewBase.smali 将.field private
好了废话不多说了,沉浸式状态栏现在已经非常普及了,不然请自行脑补一个画面(主题是蓝色的界面搭配白色,后来头顶冒出来一块红色的系统自带状态栏, 那画风。。。。)...沉浸式状态栏如下 : 再来一张 其实沉浸式状态栏不仅仅指的是顶部的状态栏,基于手机的不同,还有底部的手机也可以改成类似的 ,前提是手机得有这种底部的按钮: 如下 效果介绍完了,接下来就是实现了...如果是4.4之前版本的手机的话,是不会产生沉浸式状态栏的效果的, 而且部分手机会已经帮助你实现了,我这里是乐视2 版本是 6.0 已经帮我实现了部分界面的沉浸式; 代码片段 ; /**...* 沉浸式状态栏 * 当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏 */ private void initState() { if (Build.VERSION.SDK_INT...WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); //透明导航栏
我们知道IOS上的应用,状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?...若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦,这是个不错的体验!...winParams); } 需注意的是, tintManager.setStatusBarTintResource(R.color.top_bg_color);这一步的颜色值(即把你的状态栏颜色与你的标题栏颜色保持一致...貌似已经达到效果了,但仔细观察,好像标题栏被提上去了,就是说APP界面全屏了,状态了盖在了APP上,恩,这并非我们想要的效果,那如何将界面从状态栏下部开始呢,只需要在Activity的布局文件最外层控件加上一个属性...状态栏高度算法: /** * 状态栏高度算法 * @param activity * @return *
看了很多关于导航栏置底的文章 核心代码就这一句 android:layout_alignParentBottom=“true” 不过我的布局文件是include进来的,发现不生效。...外加一个Linear Layout 发现生效了 这里记录一下 <LinearLayout android:layout_width="match_parent" android...:layout_height="wrap_content" android:layout_weight="1"> android:layout_height="wrap_content" android:layout_width="match_parent" android...:layout_gravity="bottom" android:layout_alignParentBottom="true"/>
="android:windowTranslucentNavigation">true 其中 android:windowTranslucentStatus表示是否要填充顶部的状态栏区域...android:windowTranslucentNavigation表示是否要填充底部的状态栏区域 这两种样式的目的就是默认让应用的内容放置到系统栏的下边,如果仅仅想扩展背景样式到系统栏下边,则需要设置...,然后给系统通知栏设置我们需要的颜色。...View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } // 获取手机状态栏高度... 此代码是给您的导航条设置一个渐变,目的是让导航条和系统通知栏的样式融合看起来更加紧密。
4.4 以上要做所谓沉浸式,其实不是真正意义上的沉浸式,只是一种透明状态栏。 而由于 Android API 的不同,需要考虑 4.4、5.0、6.0 前后的不同。...适配 5.0 和 6.0 以上 应用风格如果是白色的,想把状态栏也设置成白色的,会导致状态栏上的图标文字看不见了,经查询发现 6.0 以上可以修改状态栏图标文字风格,可以改成黑的,但是 6.0 以下版本无解...(statusBarColorBefore23); 6.0 以上可以根据状态栏要变化的颜色来调整状态栏图标文字的风格。...适配 4.4 4.4 版本需要透明状态栏,将内容往下移,然后再加一个和状态栏一样大小的 View 覆盖到状态栏上面。...后来考虑将颜色和图片的逻辑分开,因为有图片时要重置的和只是改状态栏颜色的不一样,放一起如果只是改状态栏颜色会走大量无意义的逻辑,当然 4.4 版本也是要将内容往下,也要特殊考虑。
简介: 通知是显示在手机状态栏的通知(PS:就是手机上方,显示时间啥的那一栏) 用法: Notification添加了Builder()类,其包含如下方法: 1. setDefaults() ...通知led灯、音乐、震动等 2. setAutoChange() 设置点击通知后,通知自动从状态栏删除 3. setContentTitle() 通知标题 4. setContentText() ...通知内容 5. setSmallcon() 为通知设置图标 6.setLargelcon() 为通知设置大图标 7. setTick() 设置通知状态栏的提示文本...Notification.Builder(this) //设置打开通知 通知自动消失 .setAutoCancel(true) //设置显示状态栏的通知提示信息
和尚前些日子整理了两次小小的沉浸式状态栏的总结:Android 沉浸式状态栏的多种样式 和 Android 沉浸式状态栏以及伪沉浸式状态栏。...今天和尚我再稍稍补充一点,Java/Kotlin 代码中设置 LayerDrawable 方式实现沉浸式状态栏。...LayerDrawable 为图层叠加,对应 xml 中的 layer-list 层次化方式展示 Drawable,和尚我借用这种方式实现与以前一样的含有图片的沉浸式状态栏样式。
领取专属 10元无门槛券
手把手带您无忧上云