首页
学习
活动
专区
圈层
工具
发布

Android笔记:软键盘弹出遮盖原来界面的布局控件

给Activity设置软键盘出现与Activity之间的交互模式: 1.在onCreat中的setContent方法之前写入: getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN...:label="@string/app_name" > 这样会让屏幕整体上移。...:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示   【C】stateHidden:用户选择activity时,软键盘总是被隐藏   【D】stateAlwaysHidden...:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的   【E】stateVisible:软键盘通常是可见的   【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态...:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

1.6K20

Android 软键盘的那些事

android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。...:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 【C】stateHidden:用户选择activity时,软键盘总是被隐藏 【D】stateAlwaysHidden...】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分(软键盘会遮挡屏幕) android:windowSoftInputMode 活动的主窗口如何与包含屏幕上的软键盘窗...2> 活动的主窗口调整——是否减少活动主窗口大小以便腾出空间放软键盘或是否当活动窗口的部分被软键盘覆盖时它的内容的当前焦点是可见的。...相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。

2.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android基础

    android.intent.category.LAUNCHER 决定应用程序是否显示在程序列表里 android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题...这个属性能影响两件事情: 【一】当有焦点产生时,软键盘是隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”...:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 【C】stateHidden:用户选择activity时,软键盘总是被隐藏 【D】stateAlwaysHidden...:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的 【E】stateVisible:软键盘通常是可见的 【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态...:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分 下面是RelativeLayout各个属性 android:layout_above=”@id/xxx” –将控件置于给定

    1.2K20

    HTML5 - 虚拟键盘出现挡住输入框的解决办法

    如果文本输入框在整个页面的下方,当我们点击输入框要输入文字时,系统弹出的虚拟键盘就会将输入框给挡住。(这个只有在Android 系统下会有这个问题,iOS 系统会自动将整个页面上移动。) ? ?...这个方法执行后如果当前元素在视口中不可见,则会滚动浏览器窗口或容器元素,最终让它可见。如果当前元素在视口中已经是可见的,这个方法什么也不做。...3,样例代码 这里使用了 jQuery 绑定了所有输入框(textinput、textarea)的点击事件,这样当输入框被点击后就调用它的 scrollIntoViewIfNeeded() 方法,保证输入框可见...(延迟400毫秒出现时有些 Android 手机键盘出现的比较慢) 1 2 3 4 5 6 7 8 //防止键盘把当前输入框给挡住 $('input[type="text"],textarea').on

    2.7K20

    可能这些是你想要的H5软键盘兼容方案

    在IOS12 上,微信版本 v6.7.4 及以上,输入框获取焦点,键盘弹起,页面(webview)整体往上滚动,当键盘收起后,不回到原位,导致键盘原来所在位置是空白的。...Android 软键盘弹起表现 同样,在 Android 上,输入框获取焦点,键盘弹起,但是页面(webview)高度会发生改变,一般来说,高度为可视区高度(原高度减去软键盘高度),除了因为页面内容被撑开可以产生滚动...当输入框位于页面下部位置时,在 IOS 上,会将 webview 整体往上滚一段距离,使得该获取焦点的输入框自动处于可视区,而在 Android 则不会这样,它只会改变页面高度,而不会去滚动到当前焦点元素到可视区...="tel", 是 HTML5 的一个属性,表示输入框类型为电话号码,在 Android 和 IOS 上表现差不多,都会有数字键盘,但是也会有字母,略显多余。...了解软键盘弹起页面在 IOS 和 Android 上的表现差异是前提,其次是将焦点元素滚动到可视区,同时要考虑到第三方输入法和某些浏览器上的差别。

    8.9K20

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

    在IOS12 上,微信版本 v6.7.4 及以上,输入框获取焦点,键盘弹起,页面(webview)整体往上滚动,当键盘收起后,不回到原位,导致键盘原来所在位置是空白的。...Android 软键盘弹起表现 同样,在 Android 上,输入框获取焦点,键盘弹起,但是页面(webview)高度会发生改变,一般来说,高度为可视区高度(原高度减去软键盘高度),除了因为页面内容被撑开可以产生滚动...当输入框位于页面下部位置时,在 IOS 上,会将 webview 整体往上滚一段距离,使得该获取焦点的输入框自动处于可视区,而在 Android 则不会这样,它只会改变页面高度,而不会去滚动到当前焦点元素到可视区...="tel", 是 HTML5 的一个属性,表示输入框类型为电话号码,在 Android 和 IOS 上表现差不多,都会有数字键盘,但是也会有字母,略显多余。...了解软键盘弹起页面在 IOS 和 Android 上的表现差异是前提,其次是将焦点元素滚动到可视区,同时要考虑到第三方输入法和某些浏览器上的差别。

    4.6K12

    自定义键盘(二)

    一引言 上一篇文章只是自定义了一个键盘的样式,并未和任何的输入框进行关联。只有和输入框进行关联才能是一个有用的键盘。...:windowSoftInputMode="stateHidden|stateUnchanged"复制代码 让系统键盘不弹出来 3.3动态绑定输入框 系统的输入框是当EditText获取焦点的时候会弹出来...EditText仍然在获取焦点,再次点击这个EditText,键盘并未弹出。...在键盘show出的时候: //获取传递过来的跟布局的宽高 Rect rect = new Rect(); frameLayout.getWindowVisibleDisplayFrame(rect);...模式是输入英文字母 android:inputType="number" 复制代码 4.3点击非键盘和焦点区域,让键盘消失 重写activity的方法,然后调用隐藏键盘方法 @Override public

    1.5K20

    史上最奇葩的10款Android手机

    在2010年的Android市场上滑动键盘手机并不少,不过摩托罗拉决定推出一款与众不同的手机,型号叫Backflip。...跟型号名所描述的一样,这款手机是类似翻盖机一样来打开键盘的,不过与翻盖机不同的是这款手机的键盘竟然在背面… ? 这个毫无逻辑莫名其妙的设计除了造型别致之外毫无用处,而且还导致了键盘容易损坏。...Continuum是一款2010年推出的直板Android机,乍一看跟现在的Android没什么区别,但仔细看你会发现..在屏幕的下方虚拟导航键的上部,有一块 96x480 分辨率的屏幕用来额外显示信息...2011年出的这款Android机可以说是一个超前概念的手机了,这款手机配备了两块3.5寸和4.7寸的屏幕,两块屏幕中间隔了一条黑色的边框。 ?...当把屏幕翻开的时候会变成类似平板的模式,强迫app去使用两块屏幕,或者进入多任务模式。 LG Optimus ? 用四不像来形容这款Android机再适当不过了。

    1.5K20

    画个圈就能搜索!谷歌Gemini Pro植入旗舰,开启手机AI大战

    三星录音应用中的「转录辅助」功能,可提供转录并总结对话内容。 这次的新品发布,三星也是与谷歌大力合作,在Android这个最重要联系的基础上,又引入了谷歌的AI功能。...使用Circle to Search时,你首先要按下屏幕底部边缘的中间(虚拟home键位置),谷歌标志和搜索栏就会弹出来,你可以在显示屏上的任何内容周围画一个圈。...有用户测试了圈出三星时钟小部件,牛排和柠檬的图片,每次都会得到相当准确的结果,即使圈出物品的角度比较偏。...经用户测试,当使用虚拟按键时,用户需要适应这个长按的操作,否则一不小心就退出了(短按home)。...实际体验中,AI的翻译大抵上没有问题,但延迟非常糟糕,打乱了对话的节奏,——特别是在这个测试中,电话另一端的人能够理解英语,所以在翻译发送之前就用西班牙语回答了,当语音翻译在之后发出的时候,整个对话就变得混乱了

    63410

    Android 折叠屏适配攻略

    随着三星 Galaxy Fold 和 华为 Mate X 的发布,折叠屏手机开始进入大家的视线。在改变手机体验的同时,也给我们开发人员在适配方面带来了更多的挑战。...image.png 兼容模式 当 resizeableActivity 取 false 时,展开折叠屏可能会变成这样的效果: image.png 这个效果类似于在 iPad 上使用不兼容的 iPhone...Q 在即将到来的 Android Q 上,增加了一些支持折叠屏的特性。...而在 Android Q 上,所有顶层可见 Activity 都处于 onResume 状态,保证在分屏模式下的可见 Activity 都能正常运行。...Android Studio 在 Android Studio 3.5 里增加了折叠屏设备的虚拟机,我们可以创建一个来调试: image.png 通过点击模拟器上的按钮,我们可以切换虚拟机的折叠和展开状态

    3.9K40

    Android富文本开发

    (也就是说光标显示第一个输入框,不主动弹软键盘) 在第一个输入框的最直接父布局加入:android:focusable="true";android:focusableInTouchMode="true..." (效果:软键盘不弹出,光标不显示,其他输入框也不获取焦点,ps非直接父布局没有效果) android:windowSoftInputMode="stateAlwaysHidden" (效果:软键盘不弹出...,光标显示在第一个输入框中) 需求2:editText不获取焦点,当然软键盘不会主动弹出(光标也不显示) 在第一个输入框的最直接父布局加入:android:focusable="true";android...:focusableInTouchMode="true" (效果:软键盘不弹出,光标不显示,其他输入框也不获取焦点,ps非直接父布局没有效果) 在父布局最顶部添加一个高度为0的EditText,抢了焦点但不展示...stateVisible-可见状态:当设置为这个状态时,软键盘总是可见的,即使在界面上没有输入框的情况下也可以强制弹出来出来。

    10.2K20

    自适应软键盘的Dialog以及监听软键盘弹起

    软键盘弹起和收下的时候都会有不同的引导,所以要在Dialog上监听软键盘的弹起。 需求的解决: 一:适应键盘的弹起。...我们知道,在Activity中如果要让布局不被软键盘遮挡,方法一般是在清单文件中配置windowSoftInputMode属性, windowSoftInputMode是Android1.5以后的一个新特性...,主要是对软键盘操作的,主要有以下属性: stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置 stateUnchanged:当这个activity出现时...,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 stateHidden:用户选择activity时,软键盘总是被隐藏 stateAlwaysHidden:当该Activity主窗口获取焦点时...,通常由系统自行决定是隐藏还是显示 adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间 adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

    4.2K30

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

    这个参考了朱雷大佬提供的这个文章:WebView上软键盘的兼容方案[1] IOS 软键盘弹起表现 在 IOS 上,输入框(input、textarea 或 富文本)获取焦点,键盘弹起,页面(webview...Android 软键盘弹起表现 同样,在 Android 上,输入框获取焦点,键盘弹起,但是页面(webview)高度会发生改变,一般来说,高度为可视区高度(原高度减去软键盘高度),除了因为页面内容被撑开可以产生滚动...IOS 软键盘收起表现 触发软键盘上的“收起”按钮键盘或者输入框以外的页面区域时,输入框失去焦点,软键盘收起。 Android 软键盘收起表现 触发输入框以外的区域时,输入框失去焦点,软键盘收起。...同样参考这篇文章:WebView上软键盘的兼容方案[3] 综合上面键盘弹起和收起在 IOS 和 Android 上的不同表现,我们可以分开进行如下处理来监听软键盘的弹起和收起: Ios 在 IOS 上,...在 Android 上,监听 webview 高度会变化,高度变小获知软键盘弹起,否则软键盘收起。 // IOS 键盘弹起:当输入框被聚焦时IOS键盘会被弹起 inputRef?.

    10.9K30

    oninput onpropertychange「建议收藏」

    onchange触发事件必须满足两个条件: a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效) b)当前对象失去焦点(onblur); 也就是说并不是我们在打字的时候就会触发...onpropertychange 只要当前对象属性发生改变,都会触发事件,但是它是IE专属的; 在textarea中,如果想捕获用户的键盘输入,用onkeyup检查事件就可以了,但是onkeyup...onpropertychange的bug 在代码实现时,发现在响应用户onclick了textarea时,如果使用obj.className=”XX”;来改变textarea输入框中字体的样式...onpropertychange 只要当前对象属性发生改变,都会触发事件,但是它是IE专属的; 在textarea中,如果想捕获用户的键盘输入,用onkeyup检查事件就可以了,但是onkeyup...onpropertychange的bug 在代码实现时,发现在响应用户onclick了textarea时,如果使用obj.className=”XX”;来改变textarea输入框中字体的样式

    84340

    终于等到你,新的虚拟键盘API 即将到来,快来先睹为快吧!

    开篇 你是否遇到过一个问题,即在移动设备上有一个固定元素,当键盘激活时,该元素会被键盘遮挡?这已经是多年来网络上的默认行为了。...这是一个具有以下内容的用户界面: Sticky header 固定头部 Sticky floating action button (FAB) 粘性浮动操作按钮 当用户将焦点放在输入框上时,虚拟键盘将会显示出来...在技术术语中,可见部分被称为视口,而隐藏部分以及当前可见的部分则是布局视口。 主要问题是当虚拟键盘激活时,可视视口的大小会缩小。...屏幕中间有一个输入框。 当输入框处于活动状态时,结账按钮将位于虚拟键盘下方,因此被隐藏起来。 我们可以轻松地通过虚拟键盘API来解决这个问题。...当用户激活输入字段时,它会显示如下: 注意垂直空间太小。怎么办?通过混合比较功能和虚拟键盘API,我们可以在键盘显示时隐藏导航。 这是实现此功能的CSS代码。

    2.1K20

    Flutter完整开发实战详解(二十、 Android PlatformView 和键盘问题)

    作为系列文章的第二十篇,本篇将结合官方的技术文档科普 Android 上 PlatformView 的实现逻辑,并且解释为什么在 Android 上 PlatformView 的键盘总是有问题。...VirtualDisplay 会将虚拟显示区域的内容渲染在一个 Surface 上。 ?...2.2.2、 Platforview 中的 WebView 键盘输入 在 Android N 之前的版本上 WebView 输入比较复杂,因为它们具有自己内部的逻辑来创建和设置输入连接,而这些输入连接并没有完全遵循...在代理线程中,返回 Flutter View 以创建输入。。 WebView 失去焦点时,将输入连接重置回 Flutter 线程。这样可以防止文本输入“卡”在 WebView 内。...所以到这里相信你应该知道,为什么 Flutter 中的 PlatforView 在 Android 上如此之难兼容,并且键盘输入问题会那么多坑了。 自此,第二十篇终于结束了!(///▽///)

    15K20

    Qt项目之虚拟键盘V1.1

    不知道上次有没有小伙伴用我的思路自己去实现一遍虚拟键盘,上次的版本存在一些的缺陷,我并不是在点击输入文本框时显示键盘的,而是通过鼠标的点击事件显示键盘的。...因为当时那版的功能我没有在网上查到怎么去实现,但这次则实现了点击文本框显示键盘的功能,还添加了切换字母大小写功能、可通过鼠标移动虚拟键盘的功能。这些都是在网上找的,然后我拼起来的。来个图片预览。 ?...听起来可能都是这样的,只是在实现时有没有更好地技巧。...,再判断获得焦点的控件是否是我们已经注册事件过滤器的控件,如果是则进行键盘响应;反之如果是失去焦点事件则隐藏键盘。...三、使用鼠标左键可移动键盘 在键盘类中重新实现鼠标事件。

    2.5K40

    Android开发笔记(三十六)展示类控件

    在XML布局文件中实现时,可设置如下属性: drawableTop : 指定文本上方的图形。 drawableBottom : 指定文本下方的图形。...EditText EditText是文本输入框,与输入有关的属性说明如下: 在XML布局文件中指定: inputType : 指定输入的文本类型。...在代码中设置: setInputType : 设置输入的文本类型。...在录入用户信息时(比如输入姓名、密码等等),EditText输入回车键,常常不要换行而是让光标直接跳到下一个编辑框。这个场景说起来简单,开发过程中就分解为三个功能: 1、监控用户当前输入了回车键。...EditText还有一个需要特殊处理的地方,就是自动关闭软键盘。一般我们希望点击其它控件时,原输入框的软键盘就要自动消失,可惜Android不是这样处理。

    2.5K30

    Java事件处理,低级事件类型:键盘事件+焦点事件,你真的懂吗?

    焦点事件 用鼠标可以指向屏幕上的任何一个对象。但是在使用键盘输入时,敲击键盘必须定位于一个特定的屏幕对象。...现在假设活动窗口在一个Java程序控制之下。当Java窗口接收到敲击键盘的操作,并定位于某个特定的组件时,这个组件就具有了焦点(focus)。...当文本域具有焦点的时候,可以将文本输入到文本域中;当按钮有焦点的时候,可以通过敲击空格键来“点击”这个按钮。 在一个窗口中,最多只有一个组件拥有焦点。...如果用户点击另一个组件,那么刚才拥有焦点的组件就会失去(lose)焦点,而被点击的组件就会获得焦点。用户还可以使用TAB键在各个组件上轮流切换焦点。这样可以遍历到所有能够接收输入焦点的组件。...注意:有些程序员觉得FOCUS_LOST事件有些混乱,并试图在focusLost处理器中通过请求获得焦点来阻止其他组件。然而,在这个时候,焦点已经失去了。

    5.2K30
    领券