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

当键盘在ScrollView中为EditText弹出时,BottomNavigation没有隐藏

的问题可能是由于布局的问题导致的。以下是一种可能的解决方案:

  1. 确保布局中的ScrollView和BottomNavigation位于同一个父容器中,例如LinearLayout或RelativeLayout。
  2. 在布局文件中,将ScrollView的android:layout_height属性设置为"wrap_content",以便根据内容自动调整高度。
  3. 在ScrollView的子项中,将EditText的android:imeOptions属性设置为"actionDone"或其他适当的值,以便在键盘上显示完成按钮。
  4. 在Activity或Fragment中,通过以下方式监听键盘的显示和隐藏事件:
代码语言:txt
复制
View decorView = getWindow().getDecorView();
decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        Rect rect = new Rect();
        decorView.getWindowVisibleDisplayFrame(rect);
        int screenHeight = decorView.getRootView().getHeight();
        int keyboardHeight = screenHeight - rect.bottom;

        // 判断键盘是否显示
        boolean isKeyboardVisible = keyboardHeight > screenHeight * 0.15;

        // 根据键盘的显示状态来隐藏或显示BottomNavigation
        if (isKeyboardVisible) {
            bottomNavigation.setVisibility(View.GONE);
        } else {
            bottomNavigation.setVisibility(View.VISIBLE);
        }
    }
});
  1. 在上述代码中,可以根据实际情况调整键盘显示的阈值,例如screenHeight * 0.15。

请注意,以上解决方案仅供参考,具体实现可能因项目的不同而有所调整。此外,腾讯云提供了一系列云计算产品,可以根据具体需求选择适合的产品。具体的产品介绍和链接地址可以在腾讯云官方网站上找到。

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

相关·内容

Android富文本开发

="true" (效果:软键盘不弹出,光标不显示,其他输入框也不获取焦点,ps非直接父布局没有效果) 在父布局最顶部添加一个高度0的EditText,抢了焦点但不展示; 软键盘遮挡界面的问题 界面中有输入框...stateAlwaysHidden-总是隐藏状态:设置该状态,软键盘总是被隐藏,和stateHidden不同的是,当我们跳转到下个界面,如果下个页面的软键盘是显示的,而我们再次回来的时候,软键盘就会隐藏起来...stateVisible-可见状态:设置这个状态,软键盘总是可见的,即使在界面上没有输入框的情况下也可以强制弹出来出来。...stateAlwaysVisible-总是显示状态:设置这个状态,软键盘总是可见的,和stateVisible不同的是,当我们跳转到下个界面,如果下个页面软键盘是隐藏的,而我们再次回来的时候,软键盘就会显示出来...adjustResize-调整模式:软键盘显示的时候,当前界面会自动重绘,会被压缩,软键盘消失之后,界面恢复正常(正常布局,非scrollView父布局);父布局是scrollView的时候,软键盘弹出

8.5K20
  • Android开发常用的知识点

    软键盘的状态(是否它是隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。...stateUnchanged 主窗口出现在前面,软键盘被保持它上次是什么状态,无论上次是可见或隐藏。...stateHidden 当用户选择该Activity,软键盘被隐藏——也就是说,当用户确定导航到该Activity,不管他离开的Activity的软键盘是可见还是隐藏都会被隐藏,不过当用户离开一个...stateAlwaysHidden 该Activity主窗口获取焦点,软键盘总是被隐藏的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...stateAlwaysVisible 该Activity主窗口获取焦点,软键盘总是显示的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。

    2.6K10

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

    假设原始界面是一个LinearLayout包含若干EditText,如下图所示,在分别使用两种属性的表现。 ?...2、ScrollView+adjustPan 我们再在该类的AndroidMainfest.xml设置windowSoftInputMode属性adjustPan, <activity android...但以下两方面无法满足需求: 1) Activity设置成全屏fullscreen模式时或是使用沉浸式状态栏,界面最外层包裹 ScrollView输入框超过一屏,当前输入框下面的输入框并不能上下滑动来输入...方法四:适配键盘高度变化情况,键盘弹起,让界面整体上移;键盘收起,让界面整体下移 此方法主要是通过在需要移动的控件外套一层scrollView,同时最布局最外层使用自定义view监听键盘弹出状态,计算键盘高度...综上所述: 1) 输入框比较少时,界面只有一个输入框,可以通过方法一设置adjustPan; 2) 如果对于非全屏/非沉浸式状态栏需求,只需要使用方法二ScrollView+adjustResize

    23.1K31

    实现Android键盘的中英文适配

    英文环境下,密码框字体和一般字体不一致问题 1、xml不能设置inputType 属性、或者password属性 2、中文环境设置inputType可以 3、要是适配英文,只能在Java代码设置...android开发EditText输入时弹出数字输入键盘(适配英文环境) 首先设置只能输入数字 <EditText android:id="@+id/second_password" android...获得焦点,会弹出数字输入法的模拟键盘 请在xml设置inputType属性即可 1、API中有,列举出来inputType的值都包括哪些。...想象一下,当我们在EditText完成了输入,想要以输入的内容作为关键字进行搜索,却需要按下“完成”图标的Enter按键,显然这不符合良好的用户体验设计。 ...:用户选择activity,软键盘总是被隐藏 【D】stateAlwaysHidden:该Activity主窗口获取焦点,软键盘也总是被隐藏的 【E】stateVisible:软键盘通常是可见的

    2.2K10

    Android仿微信朋友圈点击评论自动定位到相关行功能

    "wrap_content" android:src="@mipmap/ic_launcher"/ </RelativeLayout 消息内容就以string作为信息数据类型,头的数据类型TopClass...输入框的产生 这里有一个关键的地方,如何将EditText悬浮在键盘上,并且RecyclerView不会被挤上去。这里我们可以使用Dialog,同时在布局要使用ScrollView来进行占位 <?...图中红色部分为键盘展现之前某条信息评论区所在位置;蓝色部分为键盘,键盘打开的时候,我们需要将红色的部分移动到黄色的位置。...但是还有几个小问题,如果是点击最后一行的话,会因为滚动空间不足而不能实现相同的效果,并且按返回的时候,键盘先消失,然后再按一次之后Dialog才消失。...针对第一个问题,我们直接添加一个空View作为列表最后一项即可,并且高度要等于输入框的高度;第二个问题也很简单,就是监听键盘弹出隐藏View高度发生的变化 data class BottomClass

    1.5K60

    Android开发软键盘的显示和隐藏

    2.3 隐藏软键盘 虽然 showSoftInput() 方法是有效的,但是想要隐藏软键盘,就没有提供对应的 hideSoftInput() 方法,但是却有一个 hideSoftInputFromWindow...而第二个参数,就是隐藏软键盘的标志位,如果没有特殊要求的话,直接传递 0 就好了。...2.4 切换键盘的弹出隐藏 在 InputMethodManager ,还提供了一个 toggleSoftInput() 方法,如同它的名字一样,它可以让软键盘在显示和隐藏之间切换。 ?...在这个方法,是根据 isInputViewShow() 方法来判定当前软键盘是否处于显示弹出的状态。...如果想要监听键盘的弹出和收起,可以使用 ViewTreeObserver.OnGlobalLayoutListener 这个监听,来监听布局的调整,从而判断出键盘的弹出隐藏。这些细节有时间再聊。

    2.6K10

    React Native 小记 - TouchableOpacity 单次点击无效

    0x00 描述 收到测试人员提交的 Bug:帐号密码输入完毕按返回关闭键盘后,点击登录没反应,再点一次才执行登录操作。...网上类似的情况还有 “点击 TouchableOpacity ,要点击两下才会触发 onPress() ”、“在 ScrollView TouchableOpacity 需要在 TextInput...类似于 Android 原生开发的『ListView 的 Item 包含 EditText Button EditText 与 Button 如何获取焦点、无法点击、ListView 不能滑动等...此外,在 stackoverflow 上也搜索到相关的回答,说是 ListView 也有此属性,但我本地 react-native-0.57.2 ListView 源码没有此属性。...'always',键盘不会自动收起,ScrollView 也不会捕捉点击事件,但子组件可以捕获。 'handled',点击事件被子组件捕获,键盘不会自动收起。

    2.9K30

    Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)

    对于含有一清空功能 & 更多自定义样式的EditText自定义控件具体请看我的另外一个简单 & 好用的开源组件:Android自定义EditText:手把手教你做一款含一删除&自定义样式的SuperEditText...tv_clear.setVisibility(INVISIBLE); // 初始状态 = 不可见 } /** * 步骤3 * 监听输入键盘更换后的搜索按键 * 调用时刻:点击键盘上的搜索...adapter.notifyDataSetChanged(); System.out.println(cursor.getCount()); // 输入框空...输入框空 & 数据库中有搜索记录,才显示 "删除搜索记录"按钮 if (tempName.equals("") && cursor.getCount() !...源码分析 /** * 监听输入键盘更换后的搜索按键 * 调用时刻:点击键盘上的搜索 */ et_search.setOnKeyListener(new View.OnKeyListener

    2.8K10

    Android:完美解决ScrollView与嵌套EditText的滑动冲突

    ---- 原因分析 mScrollView把事件消费掉了,没有传递到EditText,从而导致没法使得 EditText 响应事件 ---- 解决思路 触摸的是EditText & 当前EditText...可滚动,则将事件交给EditText处理,即进行滚动 否则将事件交由其父类处理,即交给ScrollView进行滚动 ---- 具体实现方案 复写EditText的onTouch()并 采用 requestDisallowInterceptTouchEvent...EditText & 当前EditText可滚动,则将事件交给EditText处理; if ((v.getId() == R.id.mEditText && canVerticalScroll...ScrollView与嵌套的EditText滑动冲突问题哦。...接下来我将继续介绍 Android开发的相关知识,感兴趣的同学可以继续关注本人博客Carson_Ho的开发笔记 请帮顶 / 点赞!因为你的鼓励是我写作的最大动力!

    2.5K10

    Android UI开发中所遇到的各种坑

    尝试方案:寻找各种方法去隐藏软键盘,网上各种找。思路是在活动退出,会调用onDestroy方法销毁界面,在这个方法里面想办法隐藏界面即可。找到下面这种方法,但还是不行。...还尝试过用基类找到所有edittext然后让它们失去焦点,隐藏软键盘。...注意点:用这个隐藏软键盘的方法,最好做为空判断,否则有可能会出现空指针的异常,如当前界面没有控件获取焦点,则getCurrentFocus()这个方法得到的是一个null....第二步,布局里加一个scrollview将你要被顶起的视图放进这里,然后软键盘显示的时候,就会在scrollview里滚动以获得空间进行显示软键盘。...补充一点,inflater()方法里可以设置attach roottrue则可以解析出来,不会出现崩溃。

    1.3K20

    Android实现输入法弹出把布局顶上去和登录按钮顶上去的解决方法

    背景:在写登录界面,老板就觉得在输入密码的时候谈出来的输入法软键盘把登录按钮遮挡住了(入下图所示,不爽),连输入框都被挡了一半,于是不满意了,要叫我改,于是我看QQ的登录效果,我就去研究了一下,弹出输入法整个布局上来了...可以不用ScrollView而且输入框向上滚动,整个布局不会向上滚动。...2,最后再提供一个思路,这个思路来自于“卷皮”,卷皮的登录效果,他的设计思路是,在点击EditText输入框的时候,我第一个猜测是:得到了EditText输入焦点,或者是:猜测是监听到键盘弹出的焦点之后...,卷皮顶上那个背景就把它慢慢变小隐藏起来,导致下面的两个输入框滚动到顶部去了,就方便用户输入了。...; mAnimatorSet.start(); } 这段代码大体就是这么实现的,动态处理sroll向上滚动问题,logo动态缩小即可解决 总结 以上所述是小编给大家介绍的Android实现输入法弹出把布局顶上去和登录按钮顶上去的解决方法

    4.1K20

    【Android TV 开发】焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设备上的兼容问题 | 触摸获取焦点 | 按键获取焦点 )

    , 布局的样式是 ScrollView 嵌入一个 ConstraintLayout 布局 , 在 ConstraintLayout 布局设置了很多需要获取焦点的子组件 ; 运行正常的情况 : 在...Google 提供的模拟器上运行时 , 正常运行 , ScrollView 的子组件可以正常获取焦点 ; 运行失败的情况 : 但是在真实的国产电视盒子 , ScrollView 始终组织其子组件获取焦点..., ScrollView 会阻断子组件的焦点获取 , 但是在其它界面 , 没有添加 android:focusable=“true” 属性 , 焦点获取功能也可以正常使用 , 这就比较难受 ; 这里建议..., 控制焦点改变 ; 如果该 android:focusable 属性设置 true , 则说明该组件可以获取焦点 , 按照不同的方向按键 , 焦点跳转到本组件设定的对应方向上的件 id 对应的组件...OnFocusChangeListener 回调 , 获取焦点后才能进行点击 ; EditText 默认自动获取焦点 , 并且进入界面抢先获取焦点 , 该组件需要有光标 , 并且弹出软键盘 ;

    3.2K40

    Android ScrollView实现向上滑动控件顶部悬浮效果

    【上滑停靠顶端的悬浮框】里的实现方法是使用两个控件,滑动,监听ScrollView的滚动Y值,从而通过对两个控件的显示隐藏来实现控件的顶部悬浮。...但是实际应用场景,有可能需要悬浮的控件里面的内容是比较多的,如果通过显示隐藏的方式来实现的话,操作控件里的内容,需要重复定义两套变量,对控件里的内容进行修改时也是要操作再次,非常麻烦。...; /** * ScrollView没有实现滚动监听,所以我们必须自行实现对ScrollView的监听, * 我们很自然的想到在onTouchEvent()方法实现对滚动Y轴进行监听...* ScrollView的滚动Y值进行监听 */ public class MyScrollView extends ScrollView { private OnScrollListener...; }; /** * 重写onTouchEvent, 当用户的手在MyScrollView上面的时候, * 直接将MyScrollView滑动的Y方向距离回调给onScroll方法

    1.5K20

    2.ui

    通过 android:maxLines指定 EditText的最大行数两行,这样输入的内容超过两行时,文本就会向上滚动,而 EditText则不会再继续拉伸 如何才能让进度条在数据加载完成消失呢?...一个是从里往外撑,一个是从外往里撑 ScrollView ScrollView滚动视图是指拥有很多内容,屏幕显示不完,需要通过滚动跳来显示的视图。ScrollView只支持垂直滚动。...的子节点 ll.addView(tv); }//页面并没有实现滑动,所以在布局文件中外层添加一个进行滑动。...ListView注册了一个监听器,当用户点击了 ListView的任何一个子项就会回调 onItemClick()方法, 在这个方法可以通过 position参数判断出用户点击的是哪一个子项,然后获取到相应的水果...是不能通过 Back取消掉的,这时就一定要在代码做好控制,数据加载完成后必须要调用 ProgressDialog的dismiss()方法来关闭对话框,否则 ProgressDialog将会一直存在

    1.6K90

    Android开发之如何自定义数字键盘详解

    前言 这篇文章是介绍Android自定义键盘的一些套路,通过定义一个数字键盘例,本篇的文章语言是基于Kotlin实现的,如果还没有用或者不熟悉该语言的同学,可以自己补习,我之前也写过入门文章。...通常我们可以指定在Keyboard 设置每一个的宽高就可以了。...3、android:keyIcon设置key上显示的icon 4、android:keyLabel 上显示的值 5、android:isRepeatable 长按时是否重复该设置的操作,例如我们删除可以设置此属性...Keyboard,以及布局文件,在代码我们看到我们获取到DecorViewidandroid.R.id.content的布局,该布局是FrameLayout 布局,我们创建的布局都是放在这个布局中了...KEYCODE_DONE ,调用hideSoftKeyboard函数隐藏键盘,并执行隐藏动画,动画的xml文件就不在贴出了。

    3K21

    Android自定义View实现搜索框(SearchView)功能

    应该是隐藏的;只有当框中有文本才会显示。 4. 软键盘也应该是动态的,如完成搜索应自动隐藏。 5. 选择提示框的选项会自动补全输入框,且自动进行搜索 6....比较简单,需要注意的是EditText的这个属性 android:imeOptions=”actionSearch” 就是把Enter设置Search,并把点击Enter的动作设为actionSearch...代码不多,实现很简单,主要是需要给EditText(输入框)设置点击监听和文本改变监听,有以下几点: 1. 输入框没有文本,点击输入框,显示热门搜索列表框。 2....由于这些数据应该是在外部(调用者)获得的,所以可以通过接口回调的形式,需要更新,通知监听者更新数据。 4....输入框的文本从空”“变换到非空,即有字符,界面应显示自动补全框,隐藏热门搜索框。 5. 输入框的文本从非空变为空,系统应隐藏自动补全框和热门搜索框。 6.

    4.8K10

    TextInputLayout-Android M新控件

    它显示了一个“登录”文字与两个EditText元素,一个是用户名准备的,一个是密码准备的。布局还包含了一个触发登陆流程的按钮。背景颜色是扁平风格的灰色。...跟ScrollView一样,TextInputLayout只接受一个子元素。子元素需要是一个EditText元素。...一个单一的EditText 在输入文字的时候会隐藏hint,而被包含在TextInputLayoutEditText则会让hint变成一个在EditText上方的浮动标签。...不幸的是,如果你不告诉它,安卓不会自动的隐藏虚拟键盘。在onClick方法体调用hideKeyboard。...setError设置一个红色的错误消息,显示在EditText的下面。如果传入的参数null,错误消息将清空。并且它会改变整个EditText控件红色。

    76820

    Android使用TextInputLayout创建登陆页面

    它显示了一个“欢迎”文字(可以很容易替换成logo什么的)与两个EditText元素,一个是用户名准备的,一个是密码准备的。布局还包含了一个触发登陆流程的按钮。背景颜色是扁平风格的灰色。...跟ScrollView一样,TextInputLayout只接受一个子元素。子元素需要是一个EditText元素。...一个单一的EditText 在输入文字的时候会隐藏hint,而被包含在TextInputLayoutEditText则会让hint变成一个在EditText上方的浮动标签。...不幸的是,如果你不告诉它,安卓不会自动的隐藏虚拟键盘。在onClick方法体调用hideKeyboard。...setError设置一个红色的错误消息,显示在EditText的下面。如果传入的参数null,错误消息将清空。并且它会改变整个EditText控件红色。

    1.6K10
    领券