本发明涉及一种Android系统利用动态切换输入法的弹出模式解决输入法跳闪抖动问题的方法,属于安卓系统技术领域。

背景技术:

随着Android系统的快速发展以及安卓手机的不断普及,基于Android系统的应用不断地推陈出新,层出不穷。人们在日常生活中使用这些应用软件进行社交、读书、获取资讯、娱乐等等已经演变成一种生活习惯。层出不穷的社交类软件更成为手机用户使用频率最高的软件。表情包一直是各类具有社交属性APP的必备属性,从最早的QQ,到现在的微信,微博,陌陌,以及各类带有社交属性的APP,如唱吧,支付宝等等。

我们在使用社交软件进行聊天的过程中经常会输入表情,往往我们在切换输入法和表情面板时会出现抖动,比如,当表情显示时,我们点击表情按钮,想要隐藏表情显示软键盘时,内容Bar有一个明显的先向下后恢复的跳闪抖动现象,这里我们约定,我们把含有表情的那个面板称为内容面板,这种抖动的体验大大降低了用户的使用体验。具体是怎样的抖动呢?我们以一个常用的微博应用为例,其具体表现为:表情面板隐藏,而软键盘向上拖出瞬间,Activity高度变高,内容Bar往下滑动后又被软键盘顶回原来的位置,最终让界面产生了高度差抖动,所以在切换时明显会有不大好的抖动体验。而我们希望的是无论怎么切换都不会有跳闪抖动现象,这就是键盘与表情切换的抖动问题。如此就急需一种解决方案,解决输入法与表情面板切换时的界面跳闪抖动问题。

技术实现要素:

针对现有技术的不足,本发明提供了一种利用动态切换输入法的弹出模式解决Android系统应用软件切换输入法时抖动问题的方法;

本发明适用于Android系统智能移动终端,本发明解决了Android系统中用户在切换输入法和其它应用的表情面板时输入法跳闪抖动的问题,使得切换更加平滑,大大提高了用户体验。

术语解释:

1、adjustResize模式:android:windowSoftInputMode属性中的一个取值,表示输入法弹出时Activity的主窗口总是调整屏幕的大小用以保证软键盘的显示空间。

2、adjustNothing模式:android:windowSoftInputMode属性中的一个取值,表示弹出输入法时,不会对Activity进行调整,Activity不会有任何变化。

3、Activity:Android应用中负责与用户交互的组件,为Android应用提供可视化用户界面。

4、EditText:接受用户输入信息的最重要控件,这里指输入框。

5、Layout:Android应用的界面布局。

本发明的技术方案为:

一种动态切换Android系统输入法的弹出模式的方法,包括步骤如下:

(1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230dp-270dp,该默认高度可以保证表情面板正常显示,默认高度的取值范围根据屏幕大小可以设置为不同值,并将输入法的弹出模式设置为adjustResize模式,adjustResize模式表示Activity的主窗口实时被调整大小,以保证软键盘的显示空间;

现有技术中,初始状态时,将表情面板和输入法高度固定,则有可能导致软键盘的布局不合理从而带入新的问题,本发明初始化时未设置表情面板和输入法高度一样,原因在于,虽然解决抖动问题的关键之一是让两者高度一致,但是,输入法的高度应该是由输入法处于adjustResize模式下弹出后决定,因为这样才能保证软键盘的显示空间。

(2)点击EditText,Android系统弹出软键盘,软键盘挤压Layout,检测并记录软键盘挤压Layout的挤压差值,此挤压差值即为软键盘的高度,将表情面板的高度值更新为该挤压差值,与此同时,隐藏表情面板;

(3)固定内容面板的高度,内容面板是指表情面板上面其它所有控件的高度;

在一个布局中一个控件的位置其实是由它上面所有控件的高度决定的,如果其上面其他控件的高度不变,那么当前控件的高度自然也不会变化,即使到时Activity的高度发生了变化也不会影响该控件的位置,因此我们只要固定内容面板上方面所有控件高度,即可固定内容面板位置(高度)。

仅仅将软键盘高度和表情面板高度设置为相同的值,并不能够解决跳闪抖动问题,因为所有的跳闪都是表情面板隐藏,而软键盘向上拖出瞬间,内容面板往下滑动,又被软键盘顶回原来位置造成的。因此,只有同时固定了内容面板的位置,闪跳问题才能彻底解决。

(4)当点击表情按钮时,需要先判断软键盘是否已展开:如果软键盘已经展开,将软键盘平滑隐藏并显示表情面板;如果输入法面板未展开,再判断表情面板是否展开,如果表情面板展开了,就隐藏并将输入法弹出模式归位为adjustResize模式,如果表情面板未展开,就直接显示表情面板并将输入法弹出模式设置为adjustNothing模式。

根据本发明优选的,所述步骤(3),采用自定义方法lockContentHeight固定内容面板的高度。

根据本发明优选的,所述步骤(4),如果输入法面板已经展开,将软键盘平滑隐藏并显示表情面板,包括步骤如下:

A、将Activity的输入法弹出模式设置为adjustNothing模式;

B、将步骤(2)中记录下来的挤压差值作为表情面板的高度,再将表情面板显示;此时由于键盘弹出模式为adjustNothing,所以键盘不会有任何抖动,并且由于表情面板与键盘等高,因此EditText也不会下移;

C、将软键盘隐藏。

本发明的有益效果为:

1、本发明所述动态切换Android系统输入法的弹出模式的方法,通过设定软键盘高度和表情面板高度一致,避免了由于二者高度不一致导致的切换时整个Activity抖动,使得在切换输入法和表情时更加平缓。

2、本发明所述动态切换Android系统输入法的弹出模式的方法,通过固定内容面板的高度,避免了表情面板隐藏,而软键盘向上拖出瞬间,内容面板往下滑动,又被软键盘顶回原来位置造成的内容面板局部闪动。

3、本发明使运行在Android系统下的应用软件,尤其是社交类应用软件在输入界面切换输入法和表情面板时,切换时更加平缓不会产生严重的跳闪抖动现象,提高了用户在使用过程中的用户体验,同时也可以增强应用软件的用户黏附性。

附图说明

图1为本发明动态切换Android系统输入法的弹出模式的方法的流程示意图;

图2为现有技术中软键盘和表情面板高度不一致时发生抖动的示意图;

图3为现有技术中未固定内容面板高度时出现的内容面板闪动的示意图;

图4为采用本发明后的效果示意图。

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例

一种动态切换Android系统输入法的弹出模式的方法,如图1所示,包括步骤如下:

(1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230dp-270dp,该默认高度可以保证表情面板正常显示,默认高度的取值范围根据屏幕大小可以设置为不同值,并将输入法的弹出模式设置为adjustResize模式,adjustResize模式表示Activity的主窗口实时被调整大小,以保证软键盘的显示空间;

现有技术中,初始状态时,将表情面板和输入法高度固定,则有可能导致软键盘的布局不合理从而带入新的问题,本发明初始化时未设置表情面板和输入法高度一样,原因在于,虽然解决抖动问题的关键之一是让两者高度一致,但是,输入法的高度应该是由输入法处于adjustResize模式下弹出后决定,因为这样才能保证软键盘的显示空间。

如图2所示,现有技术中,软键盘和表情面板高度不一致时,软键盘切换至表情面板时,即由图2中的(a)切换到(b)时使整个Activity会发生抖动。

(2)点击EditText,Android系统弹出软键盘,软键盘挤压Layout,检测并记录软键盘挤压Layout的挤压差值,此挤压差值即为软键盘的高度,将表情面板的高度值更新为该挤压差值,与此同时,隐藏表情面板;

(3)采用自定义方法lockContentHeight固定内容面板的高度,内容面板是指表情面板上面其它所有控件的高度;

在一个布局中一个控件的位置其实是由它上面所有控件的高度决定的,如果其上面其他控件的高度不变,那么当前控件的高度自然也不会变化,即使到时Activity的高度发生了变化也不会影响该控件的位置,因此我们只要固定内容面板上方面所有控件高度,即可固定内容面板位置(高度)。

仅仅将软键盘高度和表情面板高度设置为相同的值,并不能够解决跳闪抖动问题,因为所有的跳闪都是表情面板隐藏,而软键盘向上拖出瞬间,内容面板往下滑动,又被软键盘顶回原来位置造成的。因此,只有同时固定了内容面板的位置,闪跳问题才能彻底解决。

如图3所示,当内容面板的高度不固定时,由图3中的(a)切换到(b),由图3中的(b)切换到(c),内容面板发生闪动;

(4)当点击表情按钮时,需要先判断软键盘是否已展开:如果软键盘已经展开,将软键盘平滑隐藏并显示表情面板;包括步骤如下:

A、将Activity的输入法弹出模式设置为adjustNothing模式;

B、将步骤(2)中记录下来的挤压差值作为表情面板的高度,再将表情面板显示;此时由于键盘弹出模式为adjustNothing,所以键盘不会有任何抖动,并且由于表情面板与键盘等高,因此EditText也不会下移;

C、将软键盘隐藏。

如果输入法面板未展开,再判断表情面板是否展开,如果表情面板展开了,就隐藏并将输入法弹出模式归位为adjustResize模式,如果表情面板未展开,就直接显示表情面板并将输入法弹出模式设置为adjustNothing模式。

本发明所述动态切换Android系统输入法的弹出模式的方法,通过设定软键盘高度和表情面板高度一致,避免了由于二者高度不一致导致的切换时整个Activity抖动,使得在切换输入法和表情时更加平缓。通过固定内容面板的高度,避免了表情面板隐藏,而软键盘向上拖出瞬间,内容面板往下滑动,又被软键盘顶回原来位置造成的内容面板局部闪动。如图4所示。

android 输入法更换_一种动态切换Android系统输入法的弹出模式的方法与流程相关推荐

  1. android系统动态切换输入法,一种动态切换Android系统输入法的弹出模式的方法与流程...

    技术特征: 1.一种动态切换Android系统输入法的弹出模式的方法,其特征在于,包括步骤如下: (1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230 ...

  2. android自动切换输入法,一种动态切换Android系统输入法的弹出模式的方法

    主权项: 1.一种动态切换Android系统输入法的弹出模式的方法,其特征在于,包括步骤如下:(1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230dp ...

  3. java卡 应用_一种实现多发行方的多应用Java卡的方法与流程

    本发明涉及智能卡 技术领域: :,尤其涉及一种实现多发行方的多应用Java卡的方法. 背景技术: ::在GlobalPlatform组织发布的卡片规范中,有且只有一个发行方,该发行方是卡片的拥有者并最 ...

  4. 数据丢包怎么修复_一种网络传输中实时音频数据丢包恢复的方法与流程

    本发明涉及通信技术领域,具体涉及一种网络传输中实时音频数据丢包恢复的方法. 背景技术: 随着通信技术的发展,音频传输系统对实时性和准确性的要求越来越高.在网络的音频传输过程中,影响音频音质的主要因素是 ...

  5. ais信号接收设备_一种小型AIS自动识别系统的收发机模块的制作方法

    本实用新型船用导航雷达领域,特别指一种小型AIS自动识别系统的收发机模块. 背景技术: 随着渔业的不断发展,海上安全设备在不断完善,AIS设备也得到广泛普及应用,AIS设备的微型化.便携化.防水性.低 ...

  6. flash写保护原理_一种基于flash写保护的防止flash被意外篡改的方法与流程

    本发明属linux嵌入式芯片安全技术领域于领域,尤其是涉及一种nandflash写保护应用方法. 背景技术: 目前很多公司都纷纷尝试智能设备(sd,smartdevice)领域,sd设备功能越来越多, ...

  7. 快递取件码生成软件_一种自动生成取件码的快递柜及其使用方法与流程

    本发明涉及快递柜技术领域,尤其是自动生成取件码的快递柜及其使用方法. 背景技术: 近年来,随着快递业的迅速发展,快递柜的应用也越发广泛.为了解决快递智能存储问题,许多小区已经安装了智能快递柜,快递员将 ...

  8. cadence 查看器件丝印_一种Allegro软件中自动检查丝印摆放方向的方法与流程

    本发明涉及Allegro软件开发领域,尤其涉及一种Allegro软件中自动检查丝印摆放方向的方法. 背景技术: 随着电子信息技术的不断发展,PCB的设计也越来越复杂,电子产品的集成度也越来越高,在PC ...

  9. 属性与意图识别_一种基于多任务学习的意图与槽位联合识别方法与流程

    本发明属于人机交互领域,涉及自然语言处理.垂直对话系统等,特别涉及一种基于多任务学习的意图与槽位联合识别方法. 背景技术: 意图识别和槽位识别可以将垂直对话系统中用户输入文本转化为语义表示,为系统采取 ...

最新文章

  1. js 404页面跳转
  2. elasticsearch 2.2+ index.codec: best_compression启用压缩
  3. HttpClient用法
  4. java反射实例_关于java反射的一个案例
  5. K8S删除某一个命名空间下所有的pod deployment statefulset命令
  6. 工作68:子路由跳转
  7. Android逆向笔记-通过ApkTool源码分析未能反编译APK的原因
  8. 为了更准确的验证码而奋斗-云大urp教务系统大作战(1.5)
  9. 扎克伯格公开信:Facebook拥有五大核心价值
  10. svg转换pdf用php实现,如何使用javascript在JSPDF中将SVG文件转换为PDF
  11. 计算机能换显卡吗,一体机电脑可以更换CPU和显卡嘛?
  12. android客户端跟服务器交换数据,Android客户端和服务器端数据交互的第一种方法...
  13. Angular判断对象不否为空的方法
  14. 创业者的噩梦 -商业竞争究竟有多残酷和黑暗
  15. 自学网络结构(一):Neural Architecture Search With Reinforcement Learning
  16. 在线时间戳格式化转换工具
  17. POX控制器的分析(二)
  18. 联想笔记本电脑键盘灯怎么开启_联想的键盘灯怎么开_联想笔记本键盘亮灯按哪个键-win7之家...
  19. python多线程爬斗破苍穹
  20. Python毕业设计 抖音短视频数据分析与可视化 - python 大数据 可视化

热门文章

  1. Tech Talk丨走进神奇的魔法世界之“魔法消除”技术
  2. 视频 | 新基建:模式与路径 - 黄奇帆 王建宙 巴曙松 凌克 吴明辉 周伯文
  3. 离职之后的五险一金、档案相关手续办理
  4. Simulink—PMSM电机模块介绍
  5. MySQL之——MySQL5.6 my.cnf 参数说明(附上自己服务器上真实配置文件)
  6. 企业档案管理实务:档案的检索方法知多少
  7. 视频监控用到的五点技术手段
  8. leetcode必刷题(四)lee75 颜色分类、lee76 最小覆盖字串、lee78 子集、lee79 单词搜索、lee84 柱状图中最大的矩形、lee85 最大矩形、lee96 不同的二叉搜索树、
  9. 【专题学习】Contiguity(进行中)
  10. web开发编译器_Web开发人员资源:大型编译