Android StatusBar / NavigationBar

本文介绍了Android系统中StatusBar和NavigationBar的隐藏、显示、颜色设置及沉浸式全屏的实现方法,包括不同版本的API调用和效果差异,旨在提供优质的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android StatusBar / NavigationBar

@Author: Luzhuo (http://luzhuo.me/blog)

优质的用户体验, 状态栏和导航栏的展示方式起到画龙点睛的作用.

前提样式:
使用系统的默认样式

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

隐藏与显示

方式 StatusBar NavigationBar 自动隐藏 Description
FLAG_FULLSCREEN × 状态栏全屏(叠加), 自动隐藏
STATUS_BAR_HIDDEN × × 减少状态栏元素, 不隐藏
SYSTEM_UI_FLAG_LOW_PROFILE × × 减少状态栏元素, 不隐藏
SYSTEM_UI_FLAG_HIDE_NAVIGATION × × 隐藏导航栏, 任意位置触发, 不隐藏
SYSTEM_UI_FLAG_FULLSCREEN × × 状态栏全屏(不叠加), 不隐藏
SYSTEM_UI_FLAG_IMMERSIVE_STICKY + … 解决不能自动隐藏的问题
SYSTEM_UI_FLAG_IMMERSIVE + … × × 解决任意位置触发的问题, 不隐藏

1. 全屏

全屏, 从Android 3.0 及 更早 开始支持隐藏StatusBar的方式

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
Android Q中,实现SystemUI的插件化开发,允许开发者自定义statusBarnavigationBar的外观和功能,这对于提供个性化用户体验至关重要。具体步骤包括: 参考资源链接:[AndroidQ SystemUI插件化实战:创建与应用](https://wenku.csdn.net/doc/6cuhxt07ou?spm=1055.2569.3001.10343) 1. **创建插件类**:首先需要创建一个继承自`OverlayPlugin`的插件类,例如`MyOverlayPlugin`,并实现接口定义的方法。 2. **实现接口方法**:实现`onPluginConnected()`和`onPluginDisconnected()`方法,分别在插件加载和卸载时执行特定操作。 3. **管理插件状态**:通过`PluginManager`监听插件的连接与断开,并利用`ArraySet`管理已连接插件的集合。 4. **自定义UI组件**:在`setup()`方法中获取statusBarnavigationBarView的实例,并实现自定义的UI逻辑。 5. **添加版本控制**:使用`@Requires`注解进行版本管理,确保插件与SystemUI版本兼容。 6. **编译和部署**:将插件编译为APK文件,并通过设备的系统设置部署,或者作为系统应用的一部分进行安装。 在这一过程中,开发者可以参考《AndroidQ SystemUI插件化实战:创建与应用》提供的详细指导和示例代码,该文档深入解析了插件化机制的原理和实践操作,为开发者提供了从概念到实现的完整知识链条。 通过上述步骤,开发者可以灵活地修改和扩展statusBarnavigationBar的功能和外观,例如更改颜色、布局或添加新的手势操作,从而使得应用更加符合特定的用户需求。 参考资源链接:[AndroidQ SystemUI插件化实战:创建与应用](https://wenku.csdn.net/doc/6cuhxt07ou?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值