首页 >> 精选笔记

软键盘不顶上去?html软键盘弹出固定布局顶上去了

2024-04-13 精选笔记 5 作者:gynm37GLQ

一、关于Android中的软键盘

原文链接:彻底搞定Android开发中软键盘的常见问题

软件盘的本质是什么?软键盘其实是一个Dialog。

InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示。

软键盘显示的调整

Android定义了一个属性,名字为windowSoftInputMode,这个属性用于设置Activity主窗口与软键盘的交互模式,用于避免软键盘遮挡内容的问题。我们可以在AndroidManifet.xml中对Activity进行设置。如:android:windowSoftInputMode=”stateUnchanged|adjustPan”。该属性可选的值有两部分,一部分为软键盘的状态控制,控制软键盘是隐藏还是显示,另一部分是Activity窗口的调整,以便腾出空间展示软键盘。 android:windowSoftInputMode的属性设置必须是下面中的一个值,或一个”state”值加一个”adjust”值的组合,各个值之间用|分开。

stateUnspecified-未指定状态:当我们没有设置android:windowSoftInputMode属性的时候,软件默认采用的就是这种交互方式,系统会根据界面采取相应的软键盘的显示模式。

stateUnchanged-不改变状态:当前界面的软键盘状态,取决于上一个界面的软键盘状态,无论是隐藏还是显示。

stateHidden-隐藏状态:当设置该状态时,软键盘总是被隐藏,不管是否有输入的需求。

stateAlwaysHidden-总是隐藏状态:当设置该状态时,软键盘总是被隐藏,和stateHidden不同的是,当我们跳转到下个界面,如果下个页面的软键盘是显示的,而我们再次回来的时候,软键盘就会隐藏起来。

stateVisible-可见状态:当设置为这个状态时,软键盘总是可见的,即使在界面上没有输入框的情况下也可以强制弹出来出来。

stateAlwaysVisible-总是显示状态:当设置为这个状态时,软键盘总是可见的,和stateVisible不同的是,当我们跳转到下个界面,如果下个页面软键盘是隐藏的,而我们再次回来的时候,软键盘就会显示出来。

adjustUnspecified-未指定模式:设置软键盘与软件的显示内容之间的显示关系。当你跟我们没有设置这个值的时候,这个选项也是默认的设置模式。在这中情况下,系统会根据界面选择不同的模式。

adjustResize-调整模式:该模式下窗口总是调整屏幕的大小用以保证软键盘的显示空间;这个选项不能和adjustPan同时使用,如果这两个属性都没有被设置,系统会根据窗口中的布局自动选择其中一个。

adjustPan-默认模式:该模式下通过不会调整来保证软键盘的空间,而是采取了另外一种策略,系统会通过布局的移动,来保证用户要进行输入的输入框肯定在用户的视野范围里面,从而让用户可以看到自己输入的内容。

案例

没有滚动布局xml

对于没有滚动控件的布局来说,adjustPan就是默认的设置,比如我们案例应用中的文本输入8,上面的文本输入框123和按钮都会被顶上去,且页面布局不可以滚动。

对于没有滚动控件的布局来说,整个布局会网上偏移(包括标题等)以保证输入框的可见。如果有滚动控件,那么就是内容网上偏移,标题不会动,还可以通关滚动来查看被顶上去的内容,而这点是不可滚动的布局所不具备的

有滚动布局xml

对于有滚动控件的布局,则是采用的adjustResize方式,比如我们案例应用中的文本输入8,上面的文本输入框123和按钮都会被顶上去,可以通过滚动来查看被顶上去的内容。

**根据这一原理,我们就可以把开发中遇到的软键盘遮挡页面的问题,利用ScrollView当做根布局,让系统采用adjustResize模式,很好地解决这一问题。**

自动弹出软键盘

有时候需要一进入Activity后就自动弹出软键盘,可以通过设置一个时间函数来实现,具体写法如下:

方法一:

方法二:

有时进入Activity后不希望系统自动弹出软键盘,我们可以按照下面的方法来实现:

方法一:

在AndroidMainfest.xml中选择那个activity,设置windowSoftInputMode属性为adjustUnspecified|stateHidden

方法二:

让EditText失去焦点,使用EditText的clearFocus方法

方法三:

强制隐藏Android输入法窗口

方法四:

EditText始终不弹出软件键盘

EditText设置ScrollView压缩背景图片解决办法

在你的Activity里加上

有时希望根据条件动态关闭软键盘,我们可以使用InputMethodManager类,按照下面的方法来实现:

方法一:

方法二:

强制隐藏软键盘,这个方法倒是很实用。

方法三:

方法四:

在onclick事件下.以下方法可行.(如果是EditText失去焦点/得到焦点,没有效果)

InputMethodManager的具体用法可以参考下面的链接:

使用android:imeOptinos可对Android自带的软键盘进行一些界面上的设置:

android:imeOptions="flagNoExtractUi"//使软键盘不全屏显示,只占用一部分屏幕

同时,这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键

android:imeOptions="actionNone"//输入框右侧不带任何提示 android:imeOptions="actionGo"//右下角按键内容为'开始' android:imeOptions="actionSearch"//右下角按键为放大镜图片,搜索 android:imeOptions="actionSend"//右下角按键内容为'发送' android:imeOptions="actionNext"//右下角按键内容为'下一步' android:imeOptions="actionDone"//右下角按键内容为'完成'

同时,可能EditText添加相应的监听器,捕捉用户点击了软键盘右下角按钮的监听事件,以便进行处理。

开发中有个需求是将页面底部的一个按钮顶起,但是开发时发现Android5.0以后的版本设置了adjustResize属性后无法成功顶起。纠结了好久,最后在stackoverflow找到解决方案,那就是在根布局上加上fitsSystemWindow=”true”即可。

这里的fitsSystemWindow具体的作用就是你的**contentview是否忽略actionbar,title,屏幕的底部虚拟按键,将整个屏幕当作可用的空间。**

正常情况,contentview可用的空间是去除了actionbar,title,底部按键的空间后剩余的可用区域;这个属性设置为true,则忽略,false则不忽略

在edittext上加入Android:imeOptions=”actionSearch”这个属性没响应,最后发现在2.3及以上版本不起作用,解决方案:加上

因为输入法键盘右下角默认的回车键本来就是换行用的,当设置单行后,回车换行就失去作用了,这样就可以设置为搜索、发送、go等等。

二、键盘坏了能修吗

问题一:键盘坏了能修吗?看情况是这几个键位的公共点线路有断点,打开看看,如果明显的话就自己找把电埂铁焊接一下,因为你说的这几个键位都在一排,只要键盘线路板不是几层的应该能搞定

问题二:键盘坏了,怎么维修 1、看是什么方面损坏,如果键帽或叉子损坏,可以用其它不常用的键替换(大小要一样),可以在键帽上贴字覆盖原标识。

2,如果是导电膜氧化,可以将键盘导电膜导线氧化处刮开,用导电银漆画上,表面用涂改液覆盖即可。

看你所说是按键回装出问题,如果没有坏,可以找任何笔记本修理店帮你装,一般很便宜。

问题三:电脑键盘坏了一个按键可以修吗?哈哈,就一个按键,我猜你的键盘也是那种里面是橡胶垫的那种吧,你买个橡胶垫换进去就可以了,电脑键盘会拆吗?用螺丝刀,下的时候注意那些橡皮垫,别搞丢了哦,你的A坏了应该是橡胶垫,弹不起来就是因它失去弹性了,如果是机械键盘,那么价格就贵点其实告诉你个好方法你把键盘右边的windos窗口的那个按键,换到A上准能好使,其实2边都有windos窗口按钮,令一边绝对是鸡肋你放心的下吧,绝对没问题!!!!

问题四:键盘坏了还能修吗一般来说,键盘进水的话,如果键盘不带防水功能,水就会进入键盘里的那三层膜,其中上面和下面那层你所看到的灰色的点点和线,不是金属,而是一种涂层,水把涂层的一小点给冲掉了,那么与其连接的键位就不能用了,这时,你可以考虑换块膜,但换的价格,够买一个新的了。希望对你有帮助!

问题五:电脑键盘接口坏了,能换吗?你挑了还插不进去户有两点一你没挑正应该是每一根针脚都是直的不能有弯曲。二没对准接口插这种接口的鼠标有方向的偏了一点点就插不进去另外对准了口插插时不能旋转一旋转又要坏了。(注:如果是***去了只是不能使用那你重启下就好了因为这种接口的鼠标不像USB那样支持热插拔拔下来插上去又能用但这种接口的不行只有拔下来了插回去是没用的只有重启电脑才能便用)

如果你手上有这个种接口没用了的鼠标或键盘只要线是好的是可以把这线换到你那个键盘上的不用焊接就把那两根线剪断拨开绝缘皮把一根根的数接好换颜色对应接就可以了把那同颜色的两根铜丝扭在一起然后一根根缠上电胶布没有透明胶也可以这样做让它绝缘不会短路不过这样接外观不好看就是要是会焊接的话可以把那两个鼠标拆下来在主板上焊各接线再装回去这样就好看一点。。。

问题六:键盘坏了,哪里能修,大概多少钱啊其实修键盘不如买键盘啊除非是在保修内的或者是高端些的机械或者静电容键盘不然真没有修的必要啊查看原帖>>

问题七:键盘坏了能不能把里面的膜换了我可以回答这个问题。因为本人就拆过键盘,如果只是键盘某个位置下面的硅胶出了问题,是可以拆开换掉的,甚于里面的薄膜电路,我认为没有修理价值(除非你两个键盘是一模一样的)。

折键盘时要注意两点:一,会有细小的镙丝在键盘上,一定注意全部拆掉,仔细观察。二,键盘下的硅胶键是单个独立的,一个键最少一个,千万不要搞丢哟,不然到最后,你会很可爱地发现有的坑里没萝卜哟!

新的一般键盘不过二十元左右吧,如果想体验动手的乐趣的话,就动手吧!

问题八:键盘失灵了有什么办法可以修好我有个好的建议:你先用软键盘试下有没有用。 1.没用,证明你的输入法和系统的某个软件冲突。 2.有用,拆开键盘,进行清洁。 3.清洁了还是不行,可能是你的电路损坏,那就换新键盘或电路板。

问题九:笔记本键盘坏了可以修吗?价格怎样?晕,楼上对笔记本结构都不了解,什么个别键坏了?掉了按键可以配,但是键按不动,或者连键了,只有换。

键下面是一个X架,加一个小冒子,当你在按下键子的时候X变成一的形状,把小帽子顶下去,和中间的夹层电路接触。这样你就可以得到想要的字母了。

其实这个夹层通常是可以维修,首先把键子一个个抠下来,然后把X架一个个抠下来,最后把处间的夹层电路取出来,用“导电银漆”将腐蚀或断了的线路连上就OK了。

但是为什么我说只能换?因为一块键盘在外面维修站卖,最多报个140(普通键盘,不是IBM,进价70左右),而操作方法像我上面说的,非常麻烦,而修好了,估计最多~~也只会给个50块,所以肯定不会有人会愿意给你修。

普通键盘进价70,IBM进价200左右,你看着办吧,让维修站赚点钱,他们也会给你安装得好点。而且如果你的键盘是进水坏的,修好了也不稳定。

问题十:我的机械键盘一个按键坏了!请问怎么修?能修好吗淘宝买个轴然后在本地找个修电脑的或者修电视机的自己提前拆开不同型号可以百度查下如何拆解让他们给你拆哼哼暴力的很因为他们不懂这玩意的价值然后拿着PCB就是主板去人家那里把老轴体焊出来新轴焊上去 1分钟的事买轴的时候其实你可以多买几个不同的轴玩玩混轴也行

三、html软键盘弹出固定布局顶上去了***该怎么解决

今天要做一个搜索功能,搜索界面采用AutoCompleteTextView做搜索条,然后下面用listview来显示搜索结果,而我的主界面是在底部用tab做了一个主界面导航,其中有一个搜索按钮,因为在搜索条中输入文字的时候会弹出软件盘,但是如果不做什么设置的话,软键盘弹出来的同时,会把我下面的tab导航给相应拉到屏幕的上面,界面显示的扭曲啊,后来找到一种解决方法,在相应的activity中(比如我这是tab的activity,用的是adjustpan)添加android:windowSoftInputMode这个属性,下面详细说下这个属性:&X!Q6c9}%i.]6@0Y"N6^d{"XwindowSoftInputMode属性设置值说明。attributes:android:windowSoftInputMode活动的主窗口如何与包含屏幕上的软键盘窗口交互。这个属性的设置将会影响两件事情7S7U+S!p7s(U)n:t:m&N:1>软键盘的状态——是否它是隐藏或显示——当活动5w$r-U9i"h.O'M"M(Activity)成为用户关注的焦点。2>活动的主窗口调整——是否减少活动主窗口大小以便腾出空间放软键盘或是否当活动窗口的部分被软键盘覆盖时它的内容的当前焦点是可见的。它的设置必须是下面列表中的一个值,或一个”state…”值加一个+s.Z"m5u:{;k;B7v4Q”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用+H8v$Q#~5f3B&`-G8c$y|分开。例如:在这设置的值8A:N!L'x0`:C(除'H0N"g,w2W)KF#y2l!c"stateUnspecified"和"adjustUnspecified"以外3^,p2EG:I2y/V)将覆盖在主题中设置的值将覆盖在主题中设置的值

tags:

关于我们

京哲百货网,发布日用百货,服装类测评。

最火推荐

小编推荐

联系我们