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

当屏幕上显示软键盘时,BottomNavigationView的高度会增加。如何调整它的高度?

当屏幕上显示软键盘时,BottomNavigationView的高度会增加。要调整它的高度,可以采取以下几种方法:

  1. 使用软键盘监听器:在布局文件中,可以添加一个软键盘监听器,以便在软键盘显示或隐藏时进行相应的操作。当软键盘显示时,可以通过修改BottomNavigationView的高度来调整它的高度。具体实现可以参考Android官方文档中的软键盘监听器的使用方法。
  2. 动态调整高度:在Activity或Fragment中,可以通过监听软键盘的显示和隐藏事件,在相应的回调方法中动态调整BottomNavigationView的高度。可以通过设置BottomNavigationView的LayoutParams来改变其高度,具体可以使用如下代码示例:
代码语言:txt
复制
// 获取BottomNavigationView的LayoutParams
LayoutParams params = bottomNavigationView.getLayoutParams();

// 根据软键盘的显示状态设置高度
if (isKeyboardVisible) {
    params.height = desiredHeight;
} else {
    params.height = originalHeight;
}

// 应用新的LayoutParams
bottomNavigationView.setLayoutParams(params);
  1. 使用全屏模式:如果你希望在软键盘显示时BottomNavigationView不受影响,可以考虑使用全屏模式。在Activity的onCreate方法中,可以通过设置Window的标志位来启用全屏模式,具体可以使用如下代码示例:
代码语言:txt
复制
// 启用全屏模式
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

需要注意的是,这种方法会隐藏系统状态栏和导航栏,可能会对用户体验产生影响,因此在使用时需要谨慎考虑。

总结起来,调整BottomNavigationView的高度可以通过软键盘监听器、动态调整高度和使用全屏模式等方法实现。具体选择哪种方法取决于你的需求和设计。

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

相关·内容

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

通过该工具,我们看到: 界面真正能用高度=屏幕高度-状态栏高度-软键盘高度 界面中蓝框是真正界面所用高度: ?...,情况类似于ScrollView+adjustPan,只能滑动部分,通过Inspect Layout也可以看到,界面可用高度是整个屏幕高度,并不会进行调整高度。...android:fitsSystemWindows=“true”会使得屏幕可布局空间位于状态栏下方与导航栏上方 方法三:使用scrollTo方法,键盘弹起,让界面整体移;键盘收起,让界面整体下移...方法四:适配键盘高度变化情况,键盘弹起,让界面整体移;键盘收起,让界面整体下移 此方法主要是通过在需要移动控件外套一层scrollView,同时最布局最外层使用自定义view监听键盘弹出状态,计算键盘高度...(4) 重设高度, 我们计算出可用高度,是目前在视觉效果能看到界面高度。但当前界面的实际高度是比可用高度要多出一个软键盘距离

21.4K31

详解Android中获取软键盘状态和软键盘高度

场景一 软键盘显示,按下返回键应当是收起软键盘,而不是回退到上一个界面,但部分机型在返回键处理上有bug,按下返回键后,虽然软键盘自动收起,但不会消费返回事件,导致Activity还会收到这次返回事件...注册布局变化监听 在Android中软键盘由隐藏变为显示,或由显示变为隐藏触发当前布局中View全局布局变化。通过监听全局布局变化就可以得知软键盘状态。...软键盘显示,窗口可见区域大小会被压缩,软键盘隐藏,窗口可见区域大小会还原。...此外,getWindowVisibleDisplayFrame()返回窗口可见区域高度,通过和屏幕高度相减,就可以得到软键盘高度了。...Window可见区域高度差值大于整个屏幕高度1/3,则表示软键盘显示中,否则软键盘为隐藏状态。

2.8K20

Android 软键盘遮挡解决

前言:在开发过程中难免遇到在软键盘遮挡输入框问题,今天来整理一下。...软键盘弹出 ? 解决问题后 解决思路: ? 思路 我们要做就是在软键盘弹出后显示位置为空白区域,不超过内容区域,也就是登录按钮一下。...有小伙伴提问了,除非空白区域和软键盘一样大小,如果软键盘区域大于空白区域那岂不是还有覆盖吗?对。  那有什么解决方式吗? 答:内容区域向上移动即可。   如何知道内容区域向上移动多少呢?...首先我们是有办法获取内容区域大小也就是高(代码中体现),然后屏幕高减去内容区域高就是软键盘高度,知道了软键盘高度软键盘高度无法改变,那么只好调整内容区域距离顶部margintop值了,...activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); //这就是软键盘高度 int newBlankheight

3.9K40

移动端那些戳中你痛点软键盘问题及解决方法

大厂技术 坚持周更 精选好文 问题 问题描述: 在ios手机中,页面中包含有输入框,点击输入框,键盘弹起,让页面中被fixed元素失效。所以造成了底部吸底和顶部吸顶元素错位问题。...但是,触发键盘上收起按钮键盘,输入框并不会失去焦点,同样软键盘收起。 ? ? 2、为什么fixed失效 既然ios键盘弹起,页面会上移,那么为什么fixed失效呢。...在 Android ,监听 webview 高度变化,高度变小获知软键盘弹起,否则软键盘收起。 // IOS 键盘弹起:输入框被聚焦IOS键盘会被弹起 inputRef?....衍生问题解决办法 之前header头用是前端自己写header,没有这个问题,推测是因为安卓手机在键盘弹起webview高度缩短为整个屏幕高度减去键盘高度, 在之前实现中,由于使用沉浸式...参考文章: WebView软键盘兼容方案[5] js如何获取iOS键盘高度[6] 移动端input“输入框”常见问题及解决方法[7] ios键盘难题与可见视口(visualViewport)api[

8K30

解决Android软键盘在全屏下设置adjustResize无效问题

输入法遮挡问题 解决输入法遮挡问题 基本上有两种 adjustResize + ScrollView adjustPan adjustPan会把页面整体推 adjustResize则是缩放可调整页面...在键盘显示未将ActivityScreen向上推动,所以你Activityview根树尺寸是没有变化。 在这种情况下,你也就无法得知键盘尺寸,对根view作相应推移。...mChildOfContent = content.getChildAt(0); //3、给Activityxml布局设置View树监听,布局有变化,如键盘弹出或收起...() { //1、获取当前界面可用高度,键盘弹起后,当前界面可用布局减少键盘高度 int usableHeightNow = computeUsableHeight(...heightDifference = usableHeightSansKeyboard - usableHeightNow; //5、高度差大于屏幕1/4,说明键盘弹出

6.6K32

手机软键盘弹起导致页面变形一种解决方案

原来样子: image.png 软键盘弹出来后: ? 在开发APP,通常情况下页面的宽度和高度都会设为 100%,即页面高度等于屏幕高度,页面宽度等于屏幕宽度。... input 获取焦点软键盘弹出,页面高度被挤压,此时页面高度 = 屏幕高度 - 软键盘高度。所以,页面高度缩小,元素都挤压在一起,布局被打乱。...举例: 我开发 APP 运行在 ipad,横屏显示高度为 768px ,我可以把 768px 当做页面的最小高度。...软键盘还是会弹起,因为页面最小高度被设为了 768px,所以此时总高度为 768px + 软键盘高度,超出了屏幕高度(ipad横屏屏幕高度为768px)。...如上图所示,此时原来页面的上半部分“消失”,就是被顶上去了,只显示原来页面的下半部分。但至少我们要页面布局不变形已经实现了。等输入完,软键盘收起,页面恢复原状。

2.2K40

听说谷歌Baba更新了 Material UI ...

更注重功能,增加参与度,并可视化地锚定UI。 先来一个什么鬼样式都没有的: <?xml version="1.0" encoding="utf-8"?...如果FabAttached设置为True,那么Fab将被布置为连接到BottomAppBar; FabCradleMargin是设置FAB和BottomAppBar之间间距,改变这个值增加或减少...这里再次简单描述相关细节: Bottom Sheets具有五种状态: STATE_COLLAPSED: Bottom Sheets是可见,但只显示可视(部分)高度。...可视高度由开发人员选择,应足以表明有额外内容,允许用户触发某个动作或扩展Bottom Sheets; STATE_EXPANDED: Bottom Sheets是可见并且最大高度并且不是拖拽或沉降...; STATE_DRAGGING:用户主动向上或向下拖动Bottom Sheets; STATE_SETTLING: 拖动/轻扫手势后,Bottom Sheets将调整到特定高度

3K20

Android 浮动编辑框具体实现代码

Android app 开发中经常会遇到一些输入框要悬浮到软键盘上方需求,大致做法有做法如下。...Android输入法软键盘悬浮,最常见一种方法是通过给ViewTreeObserver添加ViewTreeObserver.OnGlobalLayoutListener全局布局完成时或视图树中视图可见性发生变化时回调...onGlobalLayout方法,在onGlobalLayout方法中获取当前窗口区域,获取区域高度如果超过屏幕五分之一一般认为是软键盘处于显示状态,区域高度即为输入法软键盘高度,通过此高度动态调整...view高度,达到输入框悬浮于软键盘上方效果,代码如下: ViewTreeObserver.OnGlobalLayoutListener layoutListener = new ViewTreeObserver.OnGlobalLayoutListener...getSystemService(Context.WINDOW_SERVICE)) .getDefaultDisplay().getHeight(); } //计算出软键盘高度

1.2K10

Android开发常用知识点

stateUnchanged 主窗口出现在前面软键盘被保持上次是什么状态,无论上次是可见或隐藏。...stateAlwaysHidden 该Activity主窗口获取焦点软键盘总是被隐藏,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...stateAlwaysVisible 该Activity主窗口获取焦点软键盘总是显示,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...adjustResize 该Activity主窗口总是被调整屏幕大小以便留出软键盘空间 adjustPan 该Activity主窗口并不调整屏幕大小以便留出软键盘空间。...效果可以拖动高度 要想禁止拖动还是要用Popwindow 网上有说设置behavior_hideable值 但其实只能禁止拖动关闭 拖动高度变高依旧没法禁用 必须外层是CoordinatorLayout

2.6K10

Android爬坑之旅:软键盘挡住输入框问题终极解决方案

3.界面变化之后,获取"可用高度" 软键盘弹出了之后,接下来事情是获取改变之后界面的可用高度(可以被开发者用以显示内容高度)。...↑也可以看出: rect.top值,其实就是标题栏高度。(实际,这也常常被用作为获取标题栏高度方法) 屏幕高度-rect.bottom,是软键盘高度。...,是目前在视觉效果能看到界面高度。...因为能触发OnGlobalLayout事件原因有很多,不止是软键盘弹出变化,还包括各种子View隐藏显示变化等,它们对界面高度影响有限。...加上了这个判断之后,只有界面的高度变化超过1/4屏幕高度,才会进行重新设置高度,基本能保证代码只响应软键盘弹出。

4.5K20

Android 软键盘那些事

这个属性能影响两件事情: 【一】有焦点产生软键盘是隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 设置必须是下面列表中一个值,或一个”state…”值加一个”adjust…”...:该Activity总是调整屏幕大小以便留出软键盘空间(可以显示全部屏幕) 【I】adjustPan:当前窗口内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容部分(软键盘遮挡屏幕...) android:windowSoftInputMode 活动主窗口如何与包含屏幕软键盘窗**互。...2> 活动主窗口调整——是否减少活动主窗口大小以便腾出空间放软键盘或是否活动窗口部分被软键盘覆盖内容的当前焦点是可见。..."stateUnchanged" 主窗口出现在前面软键盘被保持上次是什么状态,无论上次是可见或隐藏。

1.9K10

微信小程序解决ios页面上推问题

相信大家写原生小程序都遇到过一个问题,输入框聚焦键盘弹起,页面会自动上推,使得输入框刚好位于键盘之上,在安卓中推动只是内容,但在ios中,推动是整个页面,导致导航栏被推出屏幕外,如下:图片针对这个问题...键盘弹起后,获取到键盘高度C,用显示区域B减去键盘区域C就是我们可使用区域D获取输入栏底部距离显示区域坐标,如E/H若输入栏底部坐标小于可使用区域D,如H,则说明键盘弹起,该输入栏不会被键盘遮挡...F加上页面之前已经有的滚动距离,所以在滚动之前,需要再获取一次当前页面的滚动距离这里可能会存在一个问题,页面的高度不够,无法滚动这么长距离,因此,键盘弹起,这里需要给页面增加高度,这里直接是增加键盘高度...,默认保留全部小数,我们都知道,js在计算时候会存在精度问题,有可能滚动错误解决:获取到元素坐标后,最好只保留两位小数,计算注意处理精度3、问题:页面同时有input和textarea,若只给...,获取到真实键盘高度,页面中添加两个变量,一个是input高度,一个是textarea高度输入框聚焦获取到键盘高度,判断当前类型高度是否有值,没有就赋值,有就用之前值const height

5.1K30

永恒软键盘问题遇到Flutter

移动端开发同学可能或多或少都遇到过软键盘问题。不是被遮住布局就是布局顶不上去。那么使用 Flutter 时候,遇到软键盘出来时候又会遇到什么问题呢?...如图: 这个时候 TextInput 获得输入焦点时候,情况出现了: 这里直接类似这种报错。...大概意思就是这个属性 true 时候,布局根据键盘高度调整,避免自己被键盘挡住。那么是 false 时候,就不会调整了。像我这种在底部输入框,就直接被键盘遮住了。...也就是,键盘没弹出时候,输入框在下面,键盘出来时候,输入框在键盘上方。底部对话框再怎么样,也不能被输入框顶到屏幕外面去吧。...这时候就有问题了: 如何监听键盘弹出和收回 如何根据键盘弹出收回来调整对话框高度 根据上文 resizeToAvoidBottomInset 注释,我们可以找到一个有用信息, 键盘高度是可以从 MediaQueryData.viewInsets

3.3K30

解决Android软键盘弹出覆盖h5页面输入框问题

之前我们在使用vue进行 h5 表单录入过程中,遇到了Android软键盘弹出,覆盖 h5页面 输入框 问题,在此进行回顾并分享给大家: 系统:Android 条件:输入框在可视区底部或者偏下位置...://inspect,(如下图所示),发现键盘未弹出html高度为512px,键盘弹出后html高度为288px(减少区域软键盘区域),怀疑是否是因为html、body设置了height:100%...自适应布局后,高度跟随屏幕可用高度改变而改变导致。...解决方案: 方案1 页面渲染完成后,通过JS动态获取屏幕可视区高度(注:屏幕旋转后,需重新获取屏幕高度并赋值),并将其赋值到bodyheight,这样body高度一直都是屏幕高度软键盘弹出后,...Android软键盘弹出覆盖h5页面输入框问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编及时回复大家

5.3K30

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

最近我一个项目中,在ugc页面需要在键盘顶部,紧贴着键盘显示一个文字提示,键盘消失时就隐藏. 因此,我需要监听软键盘打开/关闭 , 以及获取高度....一个View attach到一个窗口上就会创建一个ViewTreeObserver对象,这样一个View视图树发生改变,就会调用该对象某个方法,将事件通知给每个注册监听者。...软键盘由隐藏变为显示,或由显示变为隐藏,都会调用当前布局中所有存在View中ViewTreeObserver对象dispatchOnGlobalLayout()方法,此方法中会遍历所有已注册...getWindowVisibleDisplayFrame()返回窗口可见区域高度,通过和屏幕高度相减,就可以得到软键盘高度了。...,已显示视图高度 ,(r.bottom – r.top)就是显示view下坐标和上坐标,差即为高度.

2.1K10

Android 底部按钮被软键盘顶起问题解决

adjustResize 调整大小状态,这个属性表示 Activity 主窗口总是会被调整大小来保证软键盘显示空间。...如果界面中有可滑动控件,显示效果跟 adjustUnspecified 显示效果一样;如果界面中没有可滑动控件,软键盘可能盖住一些控件(布局位置不会发生变化,可能获取了焦点控件被软键盘盖住)。...一般来说,我们布局分为两种 底部按钮被滚动布局包裹 底部按钮不被滚动布局包裹 第一种布局是不会出现软键盘把底部按钮顶起情况,首先软键盘打开实际是一个 Dialog,而我们在配置文件内 adjustResize...属性是在页面的根布局 decorView 子 view 也就是一个线性布局内通过设置 paddingBottom = 软键盘高度,这样其实相当于把整个滚动布局高度减少了,所以底部按钮也只是变为需要滚动才能看到...第二种情况通常为一个继续按钮始终处于页面的底部,中间内容可以滚动,根布局内边距等于软键盘高度,底部按钮就看起来像是被顶起。

1.9K20

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

自 API 1 以来,它们就以各种形式存在着,并且每当系统 UI 重叠显示在您应用上方,这个方法就会被调用。常见例子是下拉状态栏和导航栏,或者弹出屏幕软键盘 (IME)。...我们来看一个使用系统窗口区域例子。我们有一个悬浮操作按钮 (FAB),位于屏幕右下角,距离屏幕边缘 16dp (这符合设计指南中要求)。...系统设置为使用按钮导航模式 (即上图例子所示),视觉冲突更加明显,因为这时导航栏高度更大。...在系统使用手势导航模式 (即导航栏变成屏幕底部一条粗线,也就是导航条),由于导航条有动态色彩调整功能,这个冲突可能不会那么明显。...在 Android 10 ,当前唯一强制区域是屏幕底部主屏手势区域,系统保留这个区域就可以让用户在任何时候都可以退出当前应用: △ 底部 60dp 即为强制系统手势边衬区 稳定显示边衬区 方法:

2.8K30

Android富文本开发

压缩后图片大小应该和用来展示控件大小相近,在一个很小ImageView显示一张超大图片不会带来任何视觉好处,但却会占用相当多宝贵内存,而且在性能上还可能带来负面影响。...stateUnspecified-未指定状态:软件默认采用交互方式,系统根据当前界面自动调整软键盘显示模式。...stateAlwaysVisible-总是显示状态:设置为这个状态软键盘总是可见,和stateVisible不同是,当我们跳转到下个界面,如果下个页面软键盘是隐藏,而我们再次回来时候,软键盘就会显示出来...adjustResize-调整模式:软键盘显示时候,当前界面会自动重绘,会被压缩,软键盘消失之后,界面恢复正常(正常布局,非scrollView父布局);父布局是scrollView时候,软键盘弹出...,会将布局顶起(保证输入框不被遮挡),不压缩,而且可以软键盘不消失情况下,手动滑出被遮挡布局; adjustPan-默认模式:软键盘弹出,软键盘遮挡屏幕下半部分布局,输入框在屏幕下方布局,软键盘弹起

8.4K20

【H5】209-可能这些是你想要H5软键盘兼容方案

在IOS12 ,微信版本 v6.7.4 及以上,输入框获取焦点,键盘弹起,页面(webview)整体往上滚动,键盘收起后,不回到原位,导致键盘原来所在位置是空白。...IOS 软键盘收起表现 触发软键盘“收起”按钮键盘或者输入框以外页面区域,输入框失去焦点,软键盘收起。 Android 软键盘收起表现 触发输入框以外区域,输入框失去焦点,软键盘收起。...在 Android ,监听 webview 高度变化,高度变小获知软键盘弹起,否则软键盘收起。...输入框位于页面下部位置,在 IOS ,会将 webview 整体往上滚一段距离,使得该获取焦点输入框自动处于可视区,而在 Android 则不会这样,只会改变页面高度,而不会去滚动到当前焦点元素到可视区...所以猜测,其实是滚到底了,软键盘弹起,页面实现高度大于可视区高度,这样只能在软键盘弹起后,强行增加页面高度,使输入框可以显示出来。

3.9K12
领券