状态栏:是指手机左上最顶上,显示中国移动、安全卫士、电量、网速等等,在手机的顶部。下拉就会出现通知栏。

标题栏:是指一个APP程序最上部的titleBar,从名字就知道它显然就是一个应用程序一个页面的标题了,例如打开QQ消息主页,最上面显示消息那一栏就是标题栏。

导航栏:是手机最下面的返回,HOME,主页三个键,有些是一个按钮。

实现方式一:主题设置

隐藏标题栏:@android:style/Theme.Light.NoTitleBar  明亮的效果 或@android:style/Theme.NoTitleBar黑色的效果

隐藏状态栏和标题栏:@android:style/Theme.NoTitleBar.Fullscreen黑色效果或@android:style/Theme.Light.NoTitleBar.Fullscreen白色效果

实现方式二: 代码设置

public class MainActivity extends Activity {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 隐藏标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        // 隐藏状态栏 
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
            WindowManager.LayoutParams.FLAG_FULLSCREEN); 
        setContentView(R.layout.activity_main);
    }
}

实现方式三:通过设置主题中的属性

<style name="AppTheme" parent="AppBaseTheme">

<!-- 隐藏状态栏 -->
        <item name="android:windowFullscreen">true</item>
        <!-- 隐藏标题栏 -->
        <item name="android:windowNoTitle">true</item>
    </style>

附加知识:设置activity的透明效果,当A>B>C  再从C返回B返回A时,B会闪一下,这是界面重绘造成的,当将B设置成透明后,A的重绘就有时间,执行是会回到B但B是透明状态,显示的是C,给出A绘制时间,让A平稳的展示,

这只是我自的一个理解,具体使用时再具体查。

<style name="activityTheme" parent="AppTheme">
        <item name="android:windowIsTranslucent">true</item>
    </style>

实现方式四 :通过窗口管理器设置状态栏的显示隐藏

findViewById(R.id.btn_show).setOnClickListener(
                new View.OnClickListener() {

@Override
                    public void onClick(View v) {
                        // 显示状态栏
                        WindowManager.LayoutParams attr = getWindow()
                                .getAttributes();
                        attr.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
                        getWindow().setAttributes(attr);
                    }
                });
        findViewById(R.id.btn_hide).setOnClickListener(
                new View.OnClickListener() {

@Override
                    public void onClick(View v) {
                        //隐藏状态栏
                        WindowManager.LayoutParams lp = getWindow()
                                .getAttributes();
                        lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
                        getWindow().setAttributes(lp);
                    }
                });

附加知识:

Window 是一个抽象类,表示一个窗口,它的具体实现类是 PhoneWindow,实现位于 WindowManagerService 中。

WindowManagerService 就是位于 Framework 层的窗口管理服务,它的职责就是管理系统中的所有窗口。

Window 有三种类型,分别是应用 Window子 Window 和系统 Window,应用类 Window 对应一个 Acitivity,子 Window 不能单独存在,需要依附在特定的父 Window 中,比如常见的一些 Dialog 就是一个子 Window。我们对 Window 的操作是通过 WindowManager 来完成的,WindowManager 是一个接口,它继承自只有三个方法的 ViewManager 接口:

方式五:通过设置activity界面的view

View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性。

setSystemUiVisibility方法传入的实参分析:

setSystemUiVisibility(int visibility)方法可传入的实参为:

1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)。
    2. View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。
    3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。
    4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。
    5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。
    8. View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。

导航栏home键的禁用:

https://blog.csdn.net/jiuweitianhu_12345/article/details/53693489

总结自:

https://www.jb51.net/article/112718.htm

参考:

https://blog.csdn.net/yhaolpz/article/details/68936932

状态栏、标题栏、导航栏的了解相关推荐

  1. Android 状态栏, 标题栏, 导航栏,系统栏,应用栏的区别和解释

    如上图,可以看到,有状态栏(status bar).标题栏(action bar, toolbar).导航栏(navigation bar) 等, 状态栏 (status bar):是指手机最顶上,显 ...

  2. android 电话 状态栏,Android透明式状态栏、导航栏实现

    有很多应用有透明式状态栏.导航栏,表现形式是在不同页面里,状态栏可以与最上面的背景图片或者颜色保持一致.典型的案例就是手Q:(如图所示) 很明显,在手Q中主要的几个页面的标题栏(ActionBar位置 ...

  3. Android 沉浸式透明状态栏与导航栏

    Android 系统自4.2 开始 UI 上就没多大改变,4.4 也只是增加了透明状态栏与导航栏的功能 这个特性是andorid4.4支持的,最少要api19才可以使用.下面介绍一下使用的方法,非常得 ...

  4. Android布局延伸状态栏,Android沉浸式全屏讲解(状态栏、导航栏处理)

    Android应用中经常会有一些要求全屏显隐状态栏导航栏的需求.通过全屏沉浸式的处理可以让应用达到更好的显示效果.下面系统的讲解一下有关全屏,隐藏状态栏导航栏,沉浸式的知识. 在Android4.1之 ...

  5. android仿咸鱼底部导航栏,Flutter沉浸式状态栏/AppBar导航栏/仿咸鱼底部凸起导航栏效果...

    如下图:状态栏是指android手机顶部显示手机状态信息的位置. android 自4.4开始新加入透明状态栏功能,状态栏可以自定义颜色背景,使titlebar能够和状态栏融为一体,增加沉浸感. 如上 ...

  6. android 沉浸式菜单栏,Android沉浸式全屏讲解(状态栏、导航栏处理)

    Android应用中经常会有一些要求全屏显隐状态栏导航栏的需求.通过全屏沉浸式的处理可以让应用达到更好的显示效果.下面系统的讲解一下有关全屏,隐藏状态栏导航栏,沉浸式的知识. 在Android4.1之 ...

  7. Android状态栏和导航栏透明和沉浸式模式

    最近在App上需要对状态栏进行相关的设置,在网上看了些文章,像郭神的沉浸式那篇博客对我启发蛮大,但是对状态栏的设置,包括隐藏,透明,颜色设置等,并没有比较系统的概念,实现方式不止一种,有操作Windo ...

  8. Android 加载页 完美隐藏系统状态栏和导航栏 适用刘海屏

    适用版本(因为一些方法被高版本弃用或淘汰,可能效果不太好,以下版本验证可用): android {compileSdkVersion 28buildToolsVersion '28.0.0'defau ...

  9. Android 9.0 10.0 沉浸式状态栏导致导航栏状态栏灰色蒙层的解决方案

    1.概述 在10.0的系统产品开发中,在app开发中,沉浸式状态栏也是常有的样式,但是设置沉浸式状态栏后,会导致状态栏和导航栏会有灰色蒙层的问题存在 解决方案: DecorView是整个Window界 ...

  10. android应用去掉状态栏_Android 显示、隐藏状态栏和导航栏

    Android 显示.隐藏状态栏和导航栏 控制状态栏显示,Activity的主题中配置全屏属性 true 控制状态栏显示,在setContentView之前设置全屏的flag getWindow(). ...

最新文章

  1. 【讀書筆記】人人都是产品经理
  2. 2.0版本的日历控件在ie8显示不全的解决办法
  3. Linux操作系统Ubuntu部署GCC篇
  4. boost::sort模块实现支持不同分布的随机数生成器的测试程序
  5. [Qt教程] 第12篇 2D绘图(二)渐变填充
  6. Linux常用命令(八)LVM逻辑卷管理
  7. 在PowerVR GPU上试用新Vulkan图形处理API
  8. php 5.6.30 漏洞,PHP 5.6.30 正式发布,安全漏洞修复
  9. JSK-7 奇怪的国家【入门】
  10. java 进制转换十进制
  11. 魔兽世界燃烧的远征最新服务器,魔兽世界燃烧的远征怀旧服
  12. PPT中插入矢量图(以及从visio直接复制变模糊的处理方法)
  13. qq邮箱对方服务器退回,为什么我用QQ邮箱发邮件被退回来了?他说地 – 手机爱问...
  14. 机器学习笔记 十七:基于Gini Importance、Permutation Importance、Boruta的随机森林模型重要性评估的比较
  15. 佛说,是我们自己苦了自己
  16. win10照片查看器_win10系统,图片查看器不见了咋办?教你调出传统图片查看器。...
  17. 我就这样忍了一生——星云大师
  18. 第2章第27节:英文排版技巧:大间距与大行距的应用 [PowerPoint精美幻灯片实战教程]
  19. Go C画图 CSP-J CSP-S NOIP 信息学奥赛 2023.01.30 测试题
  20. C语言 - 什么是数据类型?数据类型的本质

热门文章

  1. 封神英雄榜java_封神英雄榜云霄仙子
  2. 社群运营:8个社群运营方法教你打造社群运营专家!
  3. 吴恩达深度学习课程第五课笔记——序列模型
  4. 《神经质人格》摘录(第九章)
  5. 苹果整治垃圾短信用户叫好
  6. hdu4562 守护雅典娜 DP
  7. android的file创建,Android运用File创建临时文件,File.createTempFile
  8. 万字报告丨元宇宙的价值究竟在哪,有哪些方向值得重点关注?
  9. matlab电子琴,MATLAB 编写简易电子琴
  10. 如何评价 Facebook 发布的数字货币 Libra?