首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何只在显示键盘时隐藏Android上的导航栏和状态栏?

在Android上,可以通过以下方法在显示键盘时隐藏导航栏和状态栏:

  1. 使用全屏模式:可以通过设置Activity的window属性来实现全屏模式。在Activity的onCreate方法中,使用以下代码:
代码语言:txt
复制
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

这将隐藏状态栏。然后,在Activity的onWindowFocusChanged方法中,使用以下代码:

代码语言:txt
复制
View decorView = getWindow().getDecorView();
if (hasFocus) {
    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}

这将隐藏导航栏。需要注意的是,这种方法只在Activity获取焦点时生效。

  1. 使用沉浸式模式:沉浸式模式可以在显示键盘时隐藏导航栏和状态栏,并且在其他情况下也可以隐藏。在Activity的onCreate方法中,使用以下代码:
代码语言:txt
复制
View decorView = getWindow().getDecorView();
int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_FULLSCREEN
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(flags);

这将隐藏导航栏和状态栏,并且使布局延伸到状态栏和导航栏的位置。

需要注意的是,以上方法只是隐藏导航栏和状态栏,并不会禁用它们。用户可以通过滑动或者其他手势重新显示导航栏和状态栏。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),该产品提供了移动应用数据分析和统计服务,可以帮助开发者了解用户行为、应用使用情况等信息。产品介绍链接地址:https://cloud.tencent.com/product/mta

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android实现系统状态栏隐藏显示功能

尤其视频类APP,需要实现切换到横屏后,隐藏系统状态栏,全屏显示,以实现看更大画面的视频。当切换回竖屏后,又显示状态栏。那么如何实现呢? 网上流传着很多种做法。...方法 4、通过如下代码实现状态栏隐藏显示: getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //隐藏状态栏 getWindow...(导航)。...8.View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏一些图标显示会被隐藏。...总结 以上所述是小编给大家介绍Android实现系统状态栏隐藏显示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家。在此也非常感谢大家对ZaLou.Cn网站支持!

4K40

Android Bitmap截取及状态栏隐藏显示功能

2.需要分享图片长这个样子,底部状态栏、标题底部按钮全部隐藏,接下来我就用最笨方法开始操作了 ?...3.首先是状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //隐藏状态栏 getWindow().clearFlags...(WindowManager.LayoutParams.FLAG_FULLSCREEN); //显示状态栏 4.标题也很简单,这里主要写两种 继承Activity用下面的方法 requestWindowFeature...PS:下面看下Android 显示隐藏状态栏实例代码 Android 显示隐藏状态栏,小说阅读界面要用到 /** * 显示隐藏状态栏,全屏不变,在有全屏时有效 * @param enable...Bitmap截取及状态栏隐藏显示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

1.1K10

实现边到边体验 | 让您键盘动起来 (一)

Android 11 中新功能之一是可以让应用在对于屏幕键盘打开关闭过程创建无缝过渡动画效果,这一功能源自 Android 11 中对 WindowInsets API 大量改进。...应用也得以通过更大幅面的内容为用户带来更具有冲击力体验。 实现边到边跟软键盘有什么关系? 其实,实现边到边不单单只是状态栏导航之后渲染。...应用本身需要开始负责处理那些跟应用重叠系统 UI 部分。 正如我们前面提到,两个最直观例子是状态栏导航。...如果我们查看 API 30 以前版本 WindowInsets,最常用边衬区类型是系统视窗边衬区。这些边衬区包括了状态栏导航以及打开键盘。...问题,来看一下这个 11 年前关于如何关闭软键盘问题。

26320

沉浸式管理:让你APP更优雅

修改状态栏字体颜色为深色 ? ? 设置状态栏导航透明度 ? ? ? 解决EditText键盘问题 ? ?...View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏一些图标显示会被隐藏。...android 5.0以上核心代码 Android自5.0起,为我们提供了设置状态栏导航颜色API,我们可以自己设置状态栏导航颜色。...android 4.4核心代码 4.4里就没有5.0以上这些api了,只能设置透明状态栏导航,而且设置透明导航之后,底部布局会被导航遮住,那怎么办呢?...状态栏导航隐藏 android 4.1以上支持状态栏导航隐藏 ? 总结 至此,ImmersionBar库用法与原理都讲完了。

1.6K30

Android虚拟导航显示隐藏实例

,比如状态栏某些图标,但这个只是系统状态栏、虚拟按键等进入夜间模式,app内部控件并不会进入夜间模式,这个以后有时间再研究怎么应用内部实现夜间模式。...2.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION,设置这个Flag可以是虚拟按键进行动态显示隐藏,因为虚拟按键会占用屏幕控件,所以虚拟按键显示隐藏可能会影响到你控件在当前界面中位置...activitytitle等相关内容存在,这些依旧还会显示,如果设置了Window.FEATURE_ACTION_BAR_OVERLY,隐藏状态栏同时,则会将actionbar也一起隐藏,如果要隐藏...打开可以看到qemu.hw.mainkeys=1 或者qemu.hw.mainkeys= 0,当qemu.hw.mainkeys=1实体键盘起效,qemu.hw.mainkeys=0显示虚拟键盘,...以上这篇Android虚拟导航显示隐藏实例就是小编分享给大家全部内容了,希望能给大家一个参考。

1.7K20

笔记53 | 管理系统UI(一)

淡化状态栏系统 如果要淡化状态通知版本为4.0以上Android系统,你可以像如下使用 SYSTEM_UI_FLAG_LOW_PROFILE这个标签。...同步状态栏与Action Bar变化 Android 4.1及以上版本,为了防止Action Bar隐藏显示时候布局发生变化,你可以使用Action Baroverlay模式。...隐藏导航 这节课将教您 4.0及以上版本中隐藏导航 让内容显示导航之后 本节课程将教您如何导航进行隐藏,这个特性是Android 4.0()版本中引入。...即便本小节仅关注如何隐藏导航,但是实际开发中,你最好让状态栏导航同时消失。...2)让内容显示导航之后 Android 4.1与更高版本中,你可以让应用内容显示导航后面,这样当导航展示或隐藏时候内容区域就不会发生布局大小变化。

1.4K40

Android监听键盘状态获取键盘高度实现方法

前言 Android暂时还没有提供一个合适API来获取/监听键盘状态高度 , 而我们又经常会有这个需求....最近我一个项目中,ugc页面需要在键盘顶部,紧贴着键盘显示一个文字提示,当键盘消失时就隐藏. 因此,我需要监听软键盘打开/关闭 , 以及获取它高度....当软键盘隐藏变为显示,或由显示变为隐藏,都会调用当前布局中所有存在View中ViewTreeObserver对象dispatchOnGlobalLayout()方法,此方法中会遍历所有已注册...至此,我们得到了剩余高度 . 这个高度可能就是键盘高度了, 为什么说可能呢?因为还么有考虑到顶部状态栏底部虚拟导航. 当然也可能不是键盘....我通过LayoutParams给它设置边距 , 设置了底部边距 , 值为返回键盘高度”- 顶部状态栏高度-虚拟导航高度. 得到真实键盘高度.

2K10

Android状态栏微技巧,带你真正理解沉浸式模式

另外,根据Android设计建议,ActionBar是不应该独立于状态栏而单独显示,因此状态栏如果隐藏了,我们同时也需要调用ActionBarhide()方法将ActionBar也进行隐藏。...隐藏导航 现在我们已经成功实现隐藏状态栏效果了,不过屏幕下方导航还比较刺眼,接下来我们就学习一下如何导航也进行隐藏。...,这样就可以将状态栏导航同时隐藏了。... 这样我们就实现类似于海岛奇兵爱奇艺沉浸式模式效果了,如下图所示。 ? 可以看到,界面默认情况下是全屏状态栏导航都不会显示。...而当我们需要用到状态栏导航,只需要在屏幕顶部向下拉,或者屏幕右侧向左拉,状态栏导航就会显示出来,此时界面上任何元素显示或大小都不会受影响。

1.9K100

全屏、沉浸式、fitSystemWindow使用及原理分析:全方位控制“沉浸式”实现

:是合成目标Layer,不参与合成 从上表可以看出,虽然展示了一个Activity,但是同时会有StatusBar、NavigationBar、XXXXActivity可以看出Activity是状态栏导航下面的...下面就来分析一下,APP层API如何影响SystemUI显示,并一步步解开所谓沉浸式与全屏原理,首先看一下如何更改状态栏颜色。...当然,如果设置了隐藏状态栏,或者导航,并且没有让布局随着隐藏而动态变化的话,就会看到被覆盖padding,默认是白色,如下图,隐藏状态栏前后对比: ? 没隐藏状态栏 ?...隐藏状态栏 以上是DecorView对状态栏添加机制,总结出来就是一句话:只要状态栏/导航不设置隐藏,设置颜色就会有效。...总结 状态栏导航颜色设置与其显示隐藏有关系,一旦隐藏,设置颜色就无效,并且颜色是通过向DecorView根布局addView方式来实现

5.2K40

5种方法完美解决android键盘挡住输入框方法详解

下面对几种开发中常用方法进行总结: 方法一:非透明状态栏下使用adjustResizeadjustPan,或是透明状态栏下使用fitsSystemWindows=true属性 主要实现方法: ...即使当前输入框下方也有输入框,键盘显示情况下,也可以通过上下滑动界面来输入,而不用先隐藏键盘,点击下方输入框,再显示键盘输入。...沉浸式状态栏/透明状态栏情况下 自android系统4.4(API =19)就开始支持沉浸式状态栏,当使用觉System windows(系统窗口),显示系统一些属性操作区域,如 最上方状态及没有实体按键最下方虚拟导航...android:fitsSystemWindows=“true”会使得屏幕可布局空间位于状态栏下方与导航上方 方法三:使用scrollTo方法,当键盘弹起,让界面整体移;键盘收起,让界面整体下移...id=5497 使用场景:针对界面全屏或是沉浸式状态栏,界面包含比较多输入框,界面即使包裹了一层ScrollView,键盘显示,当前输入框下面的输入不能通过上下滑动界面来输入。

19.9K31

实现边到边体验 | 让您键盘动起来 (一)

Android 11 中新功能之一是可以让应用在对于屏幕键盘打开关闭过程创建无缝过渡动画效果,这一功能源自 Android 11 中对 WindowInsets API 大量改进。...应用也得以通过更大幅面的内容为用户带来更具有冲击力体验。 实现边到边跟软键盘有什么关系? 其实,实现边到边不单单只是状态栏导航之后渲染。...应用本身需要开始负责处理那些跟应用重叠系统 UI 部分。 正如我们前面提到,两个最直观例子是状态栏导航。...查看文档来获取更具体信息。 View.SYSTEM_UI_FLAG_LAYOUT_STABLE or // 通知系统,视窗希望导航隐藏情况下如何布局内容。...如果我们查看 API 30 以前版本 WindowInsets,最常用边衬区类型是系统视窗边衬区。这些边衬区包括了状态栏导航以及打开键盘

1.4K20

最新iOS设计规范三|3大界面要素:(Bars)

显示全屏媒体,请考虑暂时隐藏状态栏。...当用户尝试关注媒体状态栏可能会分散注意力。暂时隐藏这些元素以提供更沉浸体验。例如,当用户浏览全屏照片时,“照片”应用程序将隐藏状态栏其他界面元素。 ? 避免永久隐藏状态栏。...所有页面的标签应保持相同高度,并且弹出键盘隐藏。 标签可能包含N个标签,但可见标签数量因设备大小方向而异。...通常,iPhone使用三到五个标签;如果需要,iPad可以接受更多一些。 当人们导航到您应用中其他区域,请不要隐藏标签。标签可为您应用启用全局导航,因此它在任何地方都应保持可见。...例如:Safari中,当你开始滚动页面,工具会自动隐藏,因为你可能正在阅读。你还可以点击屏幕底部让它再次出现。当弹出键盘,工具也会被隐藏。 ?

9.8K10

浅谈 Android 自定义锁屏页发车姿势

”,就是我们所谈沉浸模式,全称为 “Immersive Full-Screen Mode”,它可以使你app隐藏状态栏导航,实现真正意义全屏体验。   ...Android 4.4 之后加入Immersive Full-Screen Mode 允许用户应用全屏情况下,通过原有的状态栏/导航区域内做向内滑动手势来实现短暂调出状态栏导航操作,且不会影响应用正常全屏...,通过其他标签设定状态栏导航显示隐藏,以及显示隐藏样子。... Android 5.0 之后引入了 Material Design,状态栏导航也玩出了更多花样。...所以,透明只是能够改变状态栏导航颜色,并不像沉浸模式那样隐藏状态栏导航,两者是有本质区别的。   对于Android 4.4以上5.0以下版本,设置透明状态栏方式如下: ?

3.7K91

浅谈Android自定义锁屏页发车姿势

”,就是我们所谈沉浸模式,全称为 “Immersive Full-Screen Mode”,它可以使你app隐藏状态栏导航,实现真正意义全屏体验。...Android 4.4 之后加入Immersive Full-Screen Mode 允许用户应用全屏情况下,通过原有的状态栏/导航区域内做向内滑动手势来实现短暂调出状态栏导航操作,且不会影响应用正常全屏...,短暂调出状态栏导航会呈半透明状态,并且一段时间内或者用户与应用内元素进行互动情况下自动隐藏,沉浸模式四种状态如下图。...,通过其他标签设定状态栏导航显示隐藏,以及显示隐藏样子。...所以,透明只是能够改变状态栏导航颜色,并不像沉浸模式那样隐藏状态栏导航,两者是有本质区别的。

2.2K80

【最新】iPhone X 交互设计官方指南

所有的应用程序都应遵循 UIKit 中定义安全区域布局边距,这些区域可以根据设备上下文进行适当填充。安全区域还能够防止内容把状态栏导航、工具标签覆盖掉。 注意状态栏高度。...但是请注意,当背景任务(例如录音位置跟踪)处于活动状态,iPhoneX 状态栏并不会改变高度。 如果你应用程序对隐藏状态栏进行了隐藏,那么请重新考虑 iPhone X 设计。...iPhone 显示高度为 4.7 英寸,并且它屏幕提供了更多垂直空间内容,状态栏占据了你应用程序本来可以使用屏幕区域,状态栏显示了对人们有用信息,只有交换附加值时候才能被隐藏。...不要遮挡或突出显示关键显示特性。不要隐藏设备圆角传感器外壳,也不要通过屏幕顶部底部放置黑色条方式来突出主屏幕指示器。...同样请确保你应用程序支持 Touch ID 设备没有引用 Face ID功能。 请参阅 验证。 使用自定义键盘,不要重复实现系统提供键盘功能。

1.9K20

Android实现状态栏虚拟按键背景颜色变化实例代码详解

今天介绍一下,我项目开发过程中,实现状态栏虚拟按键背景颜色变化方法,实现方式是,通过隐藏系统状态栏虚拟按键背景,实现图片背景显示状态栏虚拟按键下方。...(savedInstanceState)方法之前调用): StatusBarUtil.setTransparent(this); 该方法中,首先判断API版本,由于API19以下没有设置状态栏方法,所以我们考虑...2、自定义状态栏,我设置背景为白色 ? 如果要填充自己需要导航颜色的话,可以自己创建一个导航布局layout_head, <?...留出状态栏布局 frameLayout.addView(getHeadView()); 这样,就可以设置自己想要状态栏颜色高度了。...总结 以上所述是小编给大家介绍Android实现状态栏虚拟按键背景颜色变化实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

1.7K30

AndroidDialog弹出隐藏导航效果,目前认为最优解

原本AndroidProgressDialog用法很简单,两三行代码就搞定了。但是,但是,但是,用在无人值守自助终端上,总是把之前隐藏导航状态栏显示出来。这是不可接受。...项目中用到一个AndroidProgressDialog显示操作进度条,机器要求是屏蔽或隐藏导航虚拟按键显示。...但是试了好多方法,也参考了网上很多做法,隐藏安卓底部导航之后 弹出dialog或者popupwindow后,导航会再次显示出来,虽然可以设置dialogonStart中再次隐藏导航,但是会出现一个导航显示出来又马上隐藏一个效果...Activity中,虽然setContentView(R.layout.activity_main)之前调用隐藏状态栏代码,但是一旦Activity跳转,就又出来了, 解决办法是隐藏状态栏逻辑代码下面...,加上一个状态栏变化响应处理,把它隐藏掉。

4.4K20

处理视觉冲突 | 手势导航 (二)

更具体一点来说,本文主要处理与系统 UI 出现视觉重叠问题。系统 UI 包括屏幕由系统提供所有 UI,例如导航状态栏,另外它还包括诸如通知面板之类内容。...边衬区 (Insets) 不少 Android 开发者看到边衬区 (insets) 往往会退避三舍,这个可能来源自他们 Android Lollipop 时代试图状态栏后面绘制 UI 经历,而这个经历并不那么令人愉悦...自 API 1 以来,它们就以各种形式存在着,并且每当系统 UI 重叠显示应用上方,这个方法就会被调用。常见例子是下拉状态栏导航,或者弹出屏幕软键盘 (IME)。...注意,使用可点击区域里数值进行布局,依然可能导致自己控件与系统 UI 视觉重叠,这一点与系统窗口区域 insets 不同,使用后者值对自己控件进行位移后能确保不会与系统/导航发生视觉重叠...关于如何修改系统手势区域,请参考我们接下来文章《如何处理手势冲突 | 手势导航连载 (三)》。 强制系统手势边衬区包含那些系统保留区域,在这些区域内系统手势操作永远优先。

2.8K30
领券