CN106873876A - 一种动态切换Android系统输入法的弹出模式的方法 - Google Patents
一种动态切换Android系统输入法的弹出模式的方法 Download PDFInfo
- Publication number
- CN106873876A CN106873876A CN201710165874.6A CN201710165874A CN106873876A CN 106873876 A CN106873876 A CN 106873876A CN 201710165874 A CN201710165874 A CN 201710165874A CN 106873876 A CN106873876 A CN 106873876A
- Authority
- CN
- China
- Prior art keywords
- panel
- height
- input method
- soft keyboard
- expression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04886—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明涉及一种动态切换Android系统输入法的弹出模式的方法,通过设定软键盘高度和表情面板高度一致,固定内容面板的高度,本发明使运行在Android系统下的应用软件,尤其是社交类应用软件在输入界面切换输入法和表情面板时,切换时更加平缓不会产生严重的跳闪抖动现象,提高了用户在使用过程中的用户体验,同时也可以增强应用软件的用户黏附性。
Description
技术领域
本发明涉及一种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所示。
Claims (3)
1.一种动态切换Android系统输入法的弹出模式的方法,其特征在于,包括步骤如下:
(1)初始状态下,即软键盘和表情面板都未展开时,为表情面板设置一个默认高度,默认高度的取值范围是230dp-270dp,并将输入法的弹出模式设置为adjustResize模式,adjustResize模式表示Activity的主窗口实时被调整大小,以保证软键盘的显示空间;
(2)点击EditText,Android系统弹出软键盘,软键盘挤压Layout,检测并记录软键盘挤压Layout的挤压差值,此挤压差值即为软键盘的高度,将表情面板的高度值更新为该挤压差值,与此同时,隐藏表情面板;
(3)固定内容面板的高度,内容面板是指表情面板上面其它所有控件的高度;
(4)当点击表情按钮时,需要先判断软键盘是否已展开:如果软键盘已经展开,将软键盘平滑隐藏并显示表情面板;如果输入法面板未展开,再判断表情面板是否展开,如果表情面板展开了,就隐藏并将输入法弹出模式归位为adjustResize模式,如果表情面板未展开,就直接显示表情面板并将输入法弹出模式设置为adjustNothing模式。
2.根据权利要求1所述的一种动态切换Android系统输入法的弹出模式的方法,其特征在于,所述步骤(3),采用自定义方法lockContentHeight固定内容面板的高度。
3.根据权利要求1或2所述的一种动态切换Android系统输入法的弹出模式的方法,其特征在于,所述步骤(4),如果输入法面板已经展开,将软键盘平滑隐藏并显示表情面板,包括步骤如下:
A、将Activity的输入法弹出模式设置为adjustNothing模式;
B、将步骤(2)中记录下来的挤压差值作为表情面板的高度,再将表情面板显示;
C、将软键盘隐藏。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710165874.6A CN106873876A (zh) | 2017-03-20 | 2017-03-20 | 一种动态切换Android系统输入法的弹出模式的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710165874.6A CN106873876A (zh) | 2017-03-20 | 2017-03-20 | 一种动态切换Android系统输入法的弹出模式的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106873876A true CN106873876A (zh) | 2017-06-20 |
Family
ID=59172863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710165874.6A Pending CN106873876A (zh) | 2017-03-20 | 2017-03-20 | 一种动态切换Android系统输入法的弹出模式的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106873876A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678565A (zh) * | 2017-10-31 | 2018-02-09 | 广州市千钧网络科技有限公司 | 一种对象切换的方法及装置 |
CN108563485A (zh) * | 2018-04-20 | 2018-09-21 | 科大讯飞股份有限公司 | 输入面板显示方法及装置 |
CN109710167A (zh) * | 2018-12-27 | 2019-05-03 | 北京字节跳动网络技术有限公司 | 软键盘控制方法、装置和终端 |
CN109710086A (zh) * | 2018-12-28 | 2019-05-03 | 北京微播视界科技有限公司 | 表情面板的显示方法、装置、电子设备及可读存储介质 |
CN110058778A (zh) * | 2019-04-17 | 2019-07-26 | 网易(杭州)网络有限公司 | 输入面板切换方法及装置 |
CN112306362A (zh) * | 2020-10-29 | 2021-02-02 | 智享众联科技有限公司 | 一种视图处理方法及装置 |
-
2017
- 2017-03-20 CN CN201710165874.6A patent/CN106873876A/zh active Pending
Non-Patent Citations (3)
Title |
---|
ZEJIAN_: "android高仿微信表情输入与键盘输入(详细实现分析)", 《CSDN 博客 (HTTPS://BLOG.CSDN.NET/JAVAZEJIAN/ARTICLE/DETAILS/52126391)》 * |
杨正林YOUNG: "Android高仿微信表情输入与键盘输入详解", 《新浪博客 杨正林YOUNG的博客(HTTP://BLOG.SINA.COM.CN/S/BLOG_E46097870102WHM1.HTML)》 * |
泽坚同学: "android高仿微信表情输入与键盘输入代码(详细实现分析)", 《脚本之家(HTTPS://WWW.JB51.NET/ARTICLE/101457.HTM)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678565A (zh) * | 2017-10-31 | 2018-02-09 | 广州市千钧网络科技有限公司 | 一种对象切换的方法及装置 |
CN108563485A (zh) * | 2018-04-20 | 2018-09-21 | 科大讯飞股份有限公司 | 输入面板显示方法及装置 |
CN108563485B (zh) * | 2018-04-20 | 2021-05-04 | 科大讯飞股份有限公司 | 输入面板显示方法及装置 |
CN109710167A (zh) * | 2018-12-27 | 2019-05-03 | 北京字节跳动网络技术有限公司 | 软键盘控制方法、装置和终端 |
CN109710086A (zh) * | 2018-12-28 | 2019-05-03 | 北京微播视界科技有限公司 | 表情面板的显示方法、装置、电子设备及可读存储介质 |
CN110058778A (zh) * | 2019-04-17 | 2019-07-26 | 网易(杭州)网络有限公司 | 输入面板切换方法及装置 |
CN112306362A (zh) * | 2020-10-29 | 2021-02-02 | 智享众联科技有限公司 | 一种视图处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106873876A (zh) | 一种动态切换Android系统输入法的弹出模式的方法 | |
CN102270081B (zh) | 一种调整列表元素大小的方法及装置 | |
WO2017118329A1 (zh) | 标签栏的控制方法和装置 | |
CN108334371B (zh) | 编辑对象的方法和装置 | |
CN107562322A (zh) | 切换页面的方法和装置 | |
WO2013182089A1 (zh) | 一种悬浮对象的实现方法与装置 | |
CN107426403A (zh) | 移动终端 | |
CN105103111A (zh) | 用于计算设备的用户界面 | |
CN108984093B (zh) | 触控操作方法、装置、存储介质及电子设备 | |
CN101770399A (zh) | 一种电子设备及切换其操作系统桌面的方法、装置 | |
CN106445354A (zh) | 终端设备的触摸控制方法及装置 | |
WO2013185703A1 (zh) | 一种调整界面控件位置的方法、装置及终端 | |
WO2019085820A1 (zh) | 处理方法、装置、设备和机器可读介质 | |
CN103699323A (zh) | 一种实现音乐桌面显示的方法及装置 | |
CN104038620A (zh) | 一种手机视频播放控制系统及其方法 | |
CN104954549B (zh) | 电子装置以及通信方法 | |
CN104375887B (zh) | 一种信息处理方法及电子设备 | |
CN111464430B (zh) | 一种动态表情展示方法、动态表情创建方法及装置 | |
CN104462516B (zh) | 一种信息提示方法及移动终端 | |
CN103744576A (zh) | 一种用于实现移动终端的操作界面的方法及系统 | |
CN107728905A (zh) | 一种弹幕显示方法、装置及存储介质 | |
CN106792197A (zh) | 一种视频播放区域布局的切换方法及系统 | |
CN107037971A (zh) | 应用管理装置、移动终端及方法 | |
CN107273111A (zh) | 一种分屏显示方法及终端 | |
CN109168074A (zh) | 一种视频播放方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170620 |