我的安卓系统为什么安卓 虚拟键盘 最小化总是出不来

安卓手机的虚拟按键失灵了,有大神吗!!!
之前手机就试过一次了,不过那次过了一会儿就好了,但是这次已经失灵了两三天了,本来想要拿手机去修的,但是我姐姐说这些后盖不能拆开的手机只能直接送原厂修,让我到开学的时候找到保修单再寄修,好烦。有人试过这种情况吗?我的手机型号TCLs725t,这个手机型号的刷机包网上又找不到,妈的!
要不先出产设置一下呗
引用1楼 @ 发表的:要不先出产设置一下呗
试过了,没用。T^T
发自手机虎扑
我用的米4,也是虚拟按键不管了,后来上百度搜了下小米4虚拟键盘打开方法,根据提示就弄好了,建议你去百度搜搜试试
发自手机虎扑
外屏排线坏了?
tcl不是出电视的么,也开始卖手机了⊙▽⊙
发自手机虎扑
引用3楼 @ 发表的:
我用的米4,也是虚拟按键不管了,后来上百度搜了下小米4虚拟键盘打开方法,根据提示就弄好了,建议你去百度搜搜试试
我百度过了,不过悲催的这个机型太少了,百度不到。
发自手机虎扑
两个月前我说实体键重要还被一群人喷 记忆犹新
引用5楼 @ 发表的:
tcl不是出电视的么,也开始卖手机了⊙▽⊙
以前我也是这样觉得的,自从我姐给了这台手机给我我才知道TCL也做手机
发自手机虎扑
引用4楼 @ 发表的:外屏排线坏了?
不知道啊,怎么判断?
发自手机虎扑
引用7楼 @ 发表的:两个月前我说实体键重要还被一群人喷 记忆犹新
以前我也喜欢虚拟键的,但是现在。。。唉。。。
发自手机虎扑
引用10楼 @ 发表的:
以前我也喜欢虚拟键的,但是现在。。。唉。。。
手里现在两个安卓机 一个锤子一个nexus5 觉得还是有实体键好 一个是安全感 还有一个就是 三个虚拟按键太他妈挡屏幕了
引用9楼 @ 发表的:
不知道啊,怎么判断?
不知道啊....
引用11楼 @ 发表的:
手里现在两个安卓机 一个锤子一个nexus5 觉得还是有实体键好 一个是安全感 还有一个就是 三个虚拟按键太他妈挡屏幕了
不过现在多数手机都是只有虚拟键了,学生dang没钱又上不了三星苹果。
发自手机虎扑
没人知道怎么办吗
先下个模拟虚拟按键的APP用?比如虚拟按键助手什么的,修到时再去修吧,或者用得可以就先用着,不过我之前的手机就是先虚拟按键坏了然后触屏整个坏了
您需要登录后才可以回复,请或者
154人参加团购199.00元&360.00元
1906人参加团购198.00元&699.00元
1901人参加团购679.00元&1199.00元
775人参加团购232.00元&469.00元
977人参加团购798.00元&999.00元
177人参加团购107.00元&399.00元
173人参加团购319.00元&499.00元
838人参加团购799.00元&1399.00元
27人参加团购119.00元&199.00元
184人参加团购39.90元&89.00元
98人参加团购288.00元&659.00元
327人参加团购198.00元&799.00元posts - 164,&
comments - 10,&
trackbacks - 0
软键盘显示的原理
(一) 软键盘的隐藏与出现
// view是需要控制的view对象
/**&&&& * 收起软键盘&&&& */&&& public static void collapseSoftInputMethod(Context context, View v) {&&&&&&& if (v != null) {&&&&&&&&&&& InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);&&&&&&&&&&& imm.hideSoftInputFromWindow(v.getWindowToken(), 0);&&&&&&& }&&& }
&&& /**&&&& * 显示软键盘&&&& */&&& public static void showSoftInputMethod(Context context, View v) {&&&&&&& if (v != null) {&&&&&&&&&&& InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);&&&&&&&&&&& imm.showSoftInput(v, 0);&&&&&&& }&&& }
(二) 软键盘的各个属性值含义
活动的主窗口如何与包含屏幕上的软键盘窗口交互。这个属性的设置将会影响两件事情:
1&& &&&软键盘的状态&&是否它是隐藏或显示&&当活动()成为用户关注的焦点。
2&& &&&活动的主窗口调整&&是否减少活动主窗口大小以便腾出空间放软键盘或是否当活动窗口的部分被软键盘覆盖时它的内容的当前焦点是可见的。
它的设置必须是下面列表中的一个值,或一个&state&&值加一个&adjust&&值的组合。在任一组设置多个值&&多个&state&&values,例如&mdash有未定义的结果。各个值之间用|分开。例如: &activity android:windowSoftInputMode=&stateVisible|adjustResize& . . . &
在这设置的值(除&stateUnspecified&和&adjustUnspecified&以外)将覆盖在主题中设置的值
&stateUnspecified&
软键盘的状态(是否它是隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。
这个是为了软件盘行为默认的设置。
&stateUnchanged&
软键盘被保持无论它上次是什么状态,是否可见或隐藏,当主窗口出现在前面时。
&stateHidden&
当用户选择该Activity时,软键盘被隐藏&&也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。
&stateAlwaysHidden&
软键盘总是被隐藏的,当该Activity主窗口获取焦点时。
&stateVisible&
软键盘是可见的,当那个是正常合适的时(当用户导航到Activity主窗口时)。
&stateAlwaysVisible&
当用户选择这个Activity时,软键盘是可见的&&也就是,也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。
&adjustUnspecified&
它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为设置。
&adjustResize&
该Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间
&adjustPan&
该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。
&(三)软键盘与EditText交互
"EditText + Button" &形成一个 "输入+按键响应" 的案例在android编程中是最常见不过的了。
但还有一些细节需要注意:
在EditText输入后,点击Button进行请求,软键盘应该自行消失
在EditText输入后,不点击Button进行请求,而是直接点击软键盘上的"回车",那么也应该能够正常响应请求
针对问题1,可以在响应Button的onClick事件中,主动将软键盘隐藏,加入如下代码即可
针对问题2,可以在EditText的api doc中找到答案
因此,只需要给EditText设置一个onEditorActionListener就好了,简单示例如下
备注一下:TextView.OnEditorActionListener接口方法onEditorAction方法的第二个参数actionId,其可能的值在EditorInfo的说明中能够找到。列举如下:
IME_ACTION_DONE
IME_ACTION_GO
IME_ACTION_NEXT
IME_ACTION_NONE
IME_ACTION_PREVIOUS
IME_ACTION_SEARCH
IME_ACTION_SEND
IME_ACTION_UNSPECIFIED
软键盘的Enter键默认显示的是&完成&文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。比如,在一个搜索中,我们输入要搜索的文本,然后按Enter表示要去搜索了,但是默认的Enter键显示的是&完成&文本,看着不太合适,不符合搜索的语义,如果能显示&搜索&两个字或者显示一个表示搜索的图标多好。事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的&完成&文本。这里举几个常用的常量值:
actionUnspecified& 未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED.效果:
actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE 效果:
actionGo 去往,对应常量EditorInfo.IME_ACTION_GO 效果:
actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH 效果:&
actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND 效果:
actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT 效果:
actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE 效果:
&下面已搜索为例,演示一个实例,修改main.xml如下:
&&修改HelloEditText如下:
Java代码&&
&运行程序,点击回车(也就是搜索图标软键盘按钮)会显示该actionId.我们上面的每一个设置都会对应一个常量,这里的actionId就是那个常量值。
阅读(...) 评论()安卓输入框被虚拟键盘挡住的问题(微信开发)
作者:余小弟
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了安卓输入框被虚拟键盘挡住的问题(微信开发)的相关资料,需要的朋友可以参考下
先通过一个页面看下事情的来龙去脉,页面如下所示:
这个页面刚好一屏幕大小,所以没有滚动条,因为“保存”键上面那个项目备注是需要用户去填写的,当他点击后就会出现虚拟键盘,但安卓手机弹出键盘会遮住这个输入框,以至于用户看不见了。苹果手机天然不会喔,苹果手机的键盘弹出来是占了下面的位置,从而把页面推了上去,整个页面就缩小了就不会出现这样的情况。安卓手机情况如下图:
我不停尝试去解决这个问题,但最终都不成功。
如果能模仿苹果一样,当键盘弹出来的时候,将整个页面缩小成页面底部刚好贴着键盘,那就完美了。但是这个想法最大的问题就是,不能准确拿到虚拟键盘的高度(后来测试时发现,虚拟键盘原来还可以改变大小……所以这个高度更不可能拿到了……),但即使拿到高度,能完成当备注那个textarea onfocus时,键盘弹出并准确计算成整个页面缩小成页面底部刚好贴着键盘这个效果,还有一个最终大坑!就是没有办法监听到虚拟键盘什么时候被用户收起来!这样一来就不知道什么时候去还原这个页面了……虽然onblur事件可以在失去焦点时去还原这个页面,但安卓用户的习惯操作应该是按手机上的物理返回键或者虚拟键盘上的那个收起键盘的按钮,问题是无论返回还是收起键盘,焦点还是在那里,没有失去呀,这就没办法了……所以最终的问题关键是,怎样监听到虚拟键盘……
尝试了一个方法效果已经很接近了。代码如下:
&div id="fix-hegiht" style="height: 300 width: 100%; display:"&&/div&
其实就是在文本框onfocus时,把上面这个空白高度的div显示出来,于是就能把页面撑高,就会出现滚动条,效果挺好如下图:
而且收键盘后,竟然页面会回到顶部(我怀疑触发了resize事件,但经测试,无论键盘弹出收起都没触发哎,遗憾),这不就是想要的效果了吗!如下图:
会发现虽然回到了顶部,看起来好像跟一开始没有滚动条的样子一样,但现在用户是可以滚动的,因为那个负责撑高的空div仍然在那里,如果用户滚下去就会看到一大片空白,这肯定是要处理掉的。于是问题又到了“什么时候去删了这个空div”?最好的当然是能监听到键盘什么时候被收起来啦,但这个似乎不太可能。于是我想,能不能当滚动条滚动到空div的地方就把它删了。确实可以这样子,但体验不好啊,突然就闪了一下,而且,如果当用户弹出键盘时去操作可以滚动的页面,滚到空div的地方就删了这个div,那瞬间输入框又被盖住了……
我还想,能不能滚动条滚到空div的地方,就不能往下滚了呢?如果这样,用户滚不下去,那留着这个空白div也没问题啊。但是这个想法却实现不了,搞来搞去没办法搞出来。
我就想这个虚拟键盘挡住输入框的问题应该到处可见啊,各种注册页面估计都有,那怎么会这么多年来都用安卓的我竟然没觉得这是个问题!?于是我跑去随便找一个注册页面(如搜狐邮箱)/,截图如下:
竟然可以!?整个页面往上挪了一点,但没出现滚动条!!这究竟是怎么做到的!!??我就奇怪是不是浏览器问题,因为这个是手机自带的浏览器访问的。于是我开微信,然后点开这个网站,果然如下图:
原来是微信的浏览器就会这样子……最后跑去QQ浏览器那里看,也有人问这个问题,估计是X5内核升级之后的BUG……最后为了能使用,还是将就使用空白div撑高的方法。在寻找解决方法的过程中,还发现有段很漂亮的代码。来自 也许以后会用上,可以用来判断滚动条是否到某个位置,还有滑动的方向,以此来判断什么时候阻止滚动条滚动。代码已经过详细注释:
&script type="text/javascript"&
// 防止内容区域滚到底后引起页面整体的滚动
var content = document.querySelector('main');
var startY;
content.addEventListener('touchstart', function (e) {
//起始位置
startY = e.touches[0].clientY;
content.addEventListener('touchmove', function (e) {
// 高位表示向上滚动
// 底位表示向下滚动
// 1容许 0禁止
var status = '11';
//当前位置
var currentY = e.touches[0].clientY;
//如果垂直偏移量scrollTop为0,说明要么内容小于容器没有滚动条,要么大于容器但滚动条在顶部
if (ele.scrollTop === 0) {
// 如果内容小于容器则同时禁止上下滚动,若大于则可以向下滚动
status = ele.offsetHeight &= ele.scrollHeight ? '00' : '01';
} else if (ele.scrollTop + ele.offsetHeight &= ele.scrollHeight) {
1.垂直偏移量scrollTop+整个元素的尺寸offsetHeight(包括边框)=整个内容区域scrollHeight
证明已经滚到底部了只能向上滚动;
2.其中offsetHeight(包括边框)是否要换成clientHeight(不包括边框)?
status = '10';
//若status==11则上面三种情况都不是,这种情况是有滚动条且滚动条不在顶部也不在底部
if (status != '11') {
// 判断当前的滚动方向
var direction = currentY - startY & 0 ? '10' : '01';
1.操作方向和当前允许状态求与运算,运算结果为0,就说明不允许该方向滚动,则禁止默认事件,阻止滚动
2.status为00,说明没有滚动条,此时无论direction是上还是下,都要阻止滚动
3.status为01,说明有滚动条,可以向下滚动,此时direction为01则符合向下滚动
4.status为10,说明有滚动条,可以向上滚动,此时direction为10则符合向上滚动
5.综上a.没有滚动条 b.滚动条在顶部但还向上滚动 c.滚动条在底部但还向下滚动 都要阻止滚动
if (!(parseInt(status, 2) & parseInt(direction, 2))) {
stopEvent(e);
这里用到了HTML5的touch事件,分别touch事件有四个:touchstart、touchmove、touchend、touchcancel。当你滑动屏幕的时候,他们的触发顺序是:
touchstart:当手指接触屏幕时触发
touchmove:当已经接触屏幕的手指开始移动后触发
touchend:当手指离开屏幕时触发
touchcancel:当某种touch事件非正常结束时触发
所以可以通过上图这些属性去获取touch时的位置。
以上内容给大家介绍了安卓输入框被虚拟键盘挡住的问题(微信开发),希望对大家有所帮助!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具当前位置:&&&&正文
找好玩手机游戏,上&
揭秘:为什么现在的手机都使用虚拟按键?
在好游快爆上浏览
安装好游快爆,资讯随身看
扫描右侧二维码下载,您可以
· 掌握好玩新游资讯· 查找热门手游攻略· 强大工具助你成功
不止道大家有没有发现一个现象,就是眼下的手机基本上都看不到实体按键,发布的新机几乎清一色都采用虚拟按键。尤其对于安卓手机来说,在系统进入4.0时后越来越多的安卓手机开始使用虚拟按键设计,同时按键由原来的四大天王改为现在的返回键、Home键和菜单键。那么为何厂商如此钟情虚拟按键呢?
自定义功能
虚拟键相对于实体键的一大优势在于实体键的位置排列不能更改,而虚拟键想怎么改就怎么改。比如我喜欢让返回键在左边,就放左边,喜欢在右边的同学也可以放在右边。此外,虚拟键的功能还可以自定义,比如由于以前遗留的习惯,经常用菜单键,于是就把菜单键调了出来,多任务键用的比较少,就可以设置成了长按唤出。另外,根据需要还可以在右下角多加了一个下拉通知栏的快捷键,这样来消息的时候我就不用把手伸到屏幕顶部,对于单手持机操作还是很方便的。
防止误触,不易损坏
对于喜欢玩游戏的朋友来说,通常会遇到这样的问题,当横屏玩游戏的时候,实体的电容键非常容易误触,而虚拟按键则可以根据需要自动隐藏起来,当结束游戏后再自动的呼出,彻底解决误触的问题,十分方便。也许,有人会觉得在应用使用过程中需要使用虚拟按键时,还要进行滑动呼出比较麻烦,但是,换个角度思考,假设你连续看了一小时电影,也只是在退出的时候才(有可能)需要虚拟键,这区区一步操作,根本不足为虑,能得到一个小时的视觉享受才是最重要的。
此外,虚拟按键相比实体按键来说,手感要好许多,这个道理就和人们使用触屏手机而逐渐抛弃实体按键手机是一个道理。虽然精湛的加工工艺,可以将实体按键的触感反馈做到几乎完美,符合各种人体工学标准,但是实体按键毕竟存在一定的寿命问题,尤其对于按键频率较高的手机发烧友来说,更是一大困扰。此外,对于手机厂商来说,减少实体按键的使用可以大大减少物料和设计成本,按键设计完全可以通过软件来搞定。
增加屏占比
采用物理按键或者实体按键的手机,在机身结构设计时需要在机身下方留出空间位置,这在手机这种寸土寸金的地方实在是浪费,同时,以往采用实体按键的手机存在的漏光现象可以轻松解决掉。屏内虚拟键可以减少手机&额头&和&下巴&的长度,在相同机身下可以装入更大的屏幕,而在相同屏幕下可以做到更小的机身。
解决安卓碎片化问题,提升系统观感
众所周知,作为开源操作系统,安卓虽然发展迅速,市场份额激增,但是其碎片化的问题一直得不到解决。由于各个厂商急于建立自己的生态系统,定制的ROM各式各样,谷歌作为安卓的开发者,反而失去了系统的控制权,为了收紧一部分权限,虚拟按键的统一也是一次尝试与改变。
从Android 3.0开始,谷歌为解决平板上横竖屏功能按键时很难兼顾四个实体按键,开始尝试改用三个虚拟按键,这样使得平板在横竖屏切换时,三个虚拟按键可以随着界面变化,解决了交互同一的问题。尝试到平板虚拟按键的甜头后,谷歌开始在Android 4.0之后的版本将虚拟按键作为标配。当然采用虚拟按键后的Android手机会在屏幕出现一个双下巴,一定程度上影响视觉美观。不过在后续的Android版本中,谷歌也开始优化虚拟按键的美观性,比如做成背景透明,总之,安卓风格的整体统一必然有利于提升系统的美感。
当然,对于消费者来说,是否采用或者喜欢虚拟按键,还得看个人喜好。实体键给人以踏实感是无法替代的。至今也有不少厂商坚持使用实体按键,想必也有自己的道理以及受众群体。我们也希望,未来按键在美与实用中找到一个平衡点,方便用户。
更多有趣资讯,尽在!
相关文章推荐更多"新闻资讯"相关内容
热门游戏推荐
热门关键字
热门游戏专区
扫描二维码,关注4399手游微信android 软键盘弹出隐藏挤压界面等问题
中软键盘的使用是非常多的,下面为软键盘常用的设置;
1、横屏时,点击输入框出现全键盘解决方案: 在EditText、searchview等控件中加
android:imeOptions="flagNoExtractUi"
2、竖屏时,安卓会出现半屏。
case1:你的输入框处于中下的位置,这样的话,键盘可能挡住输入框。 解决方法:在manifest中对activity设置
android:windowSoftInputMode="adjustResize" 这样activity的主窗口总会resize为键盘提供空间
case2:你的输入框处于偏上面,一般情况下这样就不会有什么问题,但是如果你的界面纵向方面使用的是layout_weight即比重来分布页面的话,
软件盘会压缩整个window,导致输入框部分被压缩。 解决方法:在manifest中对activity设置
android:windowSoftInputMode="adjustPan" 这样键盘不会对压缩原窗口,只会遮盖下面一部分内容。这样输入框不会被压缩了。
3、刚进入一个activity,会focus 输入框,这时会主动弹出软键盘,如果不希望自动弹出,那么可先让其他的不重要的控件获取焦点,然后一个定时器
再让EditText获取焦点即可!
4、判断软键盘当前是否处于弹出状态
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
5、手动隐藏软键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
6、手动弹出软键盘
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);}

我要回帖

更多关于 安卓手机开启虚拟键盘 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信