CN107368242A - 一种安卓系统软键盘自动调整位置的方法 - Google Patents
一种安卓系统软键盘自动调整位置的方法 Download PDFInfo
- Publication number
- CN107368242A CN107368242A CN201710848827.1A CN201710848827A CN107368242A CN 107368242 A CN107368242 A CN 107368242A CN 201710848827 A CN201710848827 A CN 201710848827A CN 107368242 A CN107368242 A CN 107368242A
- Authority
- CN
- China
- Prior art keywords
- soft keyboard
- screen
- region
- android system
- automatic adjusting
- 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
Abstract
本发明涉及一种安卓系统软键盘自动调整位置的方法。本发明所述安卓系统软键盘自动调整位置的方法将屏幕划分为三个区域;在用户进行输入操作时,根据软键盘大小等信息将触摸屏进行分区,判断当前焦点位置所处区域,根据焦点所处区域自动调整软键盘位置,解决了软键盘遮挡或者部分遮挡输入框的问题,方便用户的输入操作,提高用户体验。
Description
技术领域
本发明涉及一种安卓系统软键盘自动调整位置的方法,属于安卓系统智能终端的技术领域。
背景技术
随着智能终端、移动互联网的不断发展与普及,各种移动终端设备逐渐成为人们生活中不可或缺的一部分。很多移动终端设备采用触摸屏作为人机交互、操作互动的媒介,在这种情况下软键盘成为人们输入信息的主要工具。
通常,在安卓操作系统设备中,当用户点击屏幕编辑框,系统会自动为用户弹出软键盘,以便用户进行输入操作。但是,如果编辑框位置在当前页面底部时,弹出的软键盘时会遮挡编辑框。在安卓系统中,上述遮挡问题的主要解决方法是通过设置windowSoftInputMode值实现;其中压缩模式adjustResize是将当前Activity主窗口调整大小,以便留出软键盘的空间;平移模式adjustPan不调整屏幕的大小,以便留出软键盘的空间,相反,当前窗口的内容将自动移动,使得当前焦点不被键盘覆盖,而且用户能一直看到输入内容的部分,不会改变界面的布局。但是,现有技术中H5、Hybrid在安卓应用开发中的使用越来越广泛,WebView的使用越来越常见,如果软键盘是由WebView中的网页元素触发弹出的,且页面为全屏模式,在全屏模式下系统自动屏蔽adjustResize等属性的设置,上述两种模式将无法有效发挥作用,软键盘仍可能会遮挡编辑框。
用户在使用安卓触屏设备,特别是屏幕较大的设备时,如果编辑框被软键盘遮挡,或者软键盘位置不合适,会给用户输入带来不便,降低用户使用体验。
发明内容
针对现有技术的不足,本发明提供一种安卓系统软键盘自动调整位置的方法。
本发明的技术方案为:
一种安卓系统软键盘自动调整位置的方法,包括步骤如下:
1)获取屏幕大小信息、软键盘大小信息;并将屏幕划分为三个区域;三个区域为,区域1、区域2、区域3;所述屏幕大小信息包括屏幕高度H1,屏幕宽度W1;所述软键盘大小信息包括,软键盘高度H2,软键盘宽度W2;
获取屏幕大小信息、软键盘大小信息的具体步骤如下:
1.1)获取所有Activity界面所能控制区域的根View;通过getChildAt()方法获取当前Activity界面中显示的View;
1.2)注册一个监听器;在当前View树的全局布局发生变化或者View树中View的可视状态发生变化时,进行通知回调;
1.3)获取改变后的Activity界面高度H3、Activity界面宽度W3;其中,H3通过在监听器中调用View.getWindowVisibleDisplayFrame()方法获得;
1.4)计算软键盘高度H2,H2=H1-H3;
2)获取焦点位置,得到当前用户进行输入操作的位置;
当前用户点击设备屏幕时,存储每次触点的坐标信息;判断输入框是否获得焦点,如果获得焦点,则将相应的触点位置存储为焦点位置;
3)在不同区域内对软键盘执行不同调整动作;
判断当前焦点所处区域;如果位于区域1中,则将软键盘调整至屏幕中间位置;如果位于区域2中,则将软键盘至屏幕顶部或者底部位置;如果位于区域3中,则将软键盘调整至屏幕顶部或者中间位置;其中,所述中间位置是指屏幕的几何中心位置,所述顶部位置是指屏幕的最顶端位置,所述底部位置是指屏幕的最底端位置。
根据本发明优选的,所述步骤1)中,将屏幕划分为三个区域的具体步骤如下:
根据所述屏幕大小信息、软键盘大小信息将屏幕设置为三个区域,三个区域宽度相同,区域1的高度范围为(0,H2),区域2的高度范围为(H2,H3),区域3高度范围为(H3,H1)。
根据本发明优选的,所述步骤2)中,判断输入框是否获得焦点的方法为,在Activity中做以下处理:
A)取得EditText对象;
B)为EditText对象添加setOnFocusChangeListener(),重写onFocusChange方法;
C)onFocusChang()方法有两个参数,其中boolean类型的参数hasfocus为true时,判定输入框获得焦点。
根据本发明优选的,所述步骤3)的具体方法为:首先创建AreaType对象,存储当前焦点所处区域;通过getWindow()获取当前窗体;根据AreaType值,设置软键盘的不同布局。
窗体(Window):Window表示一个窗口的概念,View是Android中的视图的呈现方式,但是View不能单独存在,它必须附着在Window上。Window实际是View的直接管理者。
本发明的有益效果为:
1.本发明所述安卓系统软键盘自动调整位置的方法,在用户进行输入操作时,根据软键盘大小等信息将触摸屏进行分区,判断当前焦点位置所处区域,根据焦点所处区域自动调整软键盘位置,解决了软键盘遮挡或者部分遮挡输入框的问题,方便用户的输入操作,提高用户体验。
附图说明
图1为本发明所述安卓系统软键盘自动调整位置的方法流程图;
图2为划分三个区域的屏幕示意图。
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。
实施例1
如图1-2所示。
一种安卓系统软键盘自动调整位置的方法,包括步骤如下:
1)获取屏幕大小信息、软键盘大小信息;并将屏幕划分为三个区域;三个区域为,区域1、区域2、区域3;所述屏幕大小信息包括屏幕高度H1,屏幕宽度W1;所述软键盘大小信息包括,软键盘高度H2,软键盘宽度W2;
获取屏幕大小信息、软键盘大小信息的具体步骤如下:
1.1)获取所有Activity界面所能控制区域的根View;通过getChildAt()方法获取当前Activity界面中显示的View;
1.2)注册一个监听器;在当前View树的全局布局发生变化或者View树中View的可视状态发生变化时,进行通知回调;
1.3)获取改变后的Activity界面高度H3、Activity界面宽度W3;其中,H3通过在监听器中调用View.getWindowVisibleDisplayFrame()方法获得;
1.4)计算软键盘高度H2,H2=H1-H3;
2)获取焦点位置,得到当前用户进行输入操作的位置;
当前用户点击设备屏幕时,存储每次触点的坐标信息;判断输入框是否获得焦点,如果获得焦点,则将相应的触点位置存储为焦点位置;
3)在不同区域内对软键盘执行不同调整动作;
判断当前焦点所处区域;如果位于区域1中,则将软键盘调整至屏幕中间位置;如果位于区域2中,则将软键盘至屏幕顶部或者底部位置;如果位于区域3中,则将软键盘调整至屏幕顶部或者中间位置;其中,所述中间位置是指屏幕的几何中心位置,所述顶部位置是指屏幕的最顶端位置,所述底部位置是指屏幕的最底端位置。
实施例2
如实施例1所述的安卓系统软键盘自动调整位置的方法,所不同的是,所述步骤1)中,将屏幕划分为三个区域的具体步骤如下:
根据所述屏幕大小信息、软键盘大小信息将屏幕设置为三个区域,三个区域宽度相同,区域1的高度范围为(0,H2),区域2的高度范围为(H2,H3),区域3高度范围为(H3,H1)。
实施例3
如实施例1所述的安卓系统软键盘自动调整位置的方法,所不同的是,所述步骤2)中,判断输入框是否获得焦点的方法为,在Activity中做以下处理:
A)取得EditText对象;
B)为EditText对象添加setOnFocusChangeListener(),重写onFocusChange方法;
C)onFocusChang()方法有两个参数,其中boolean类型的参数hasfocus为true时,判定输入框获得焦点。
实施例4
如实施例1所述的安卓系统软键盘自动调整位置的方法,所不同的是,所述步骤3)的具体方法为:首先创建AreaType对象,存储当前焦点所处区域;通过getWindow()获取当前窗体;根据AreaType值,设置软键盘的不同布局。
窗体(Window):Window表示一个窗口的概念,View是Android中的视图的呈现方式,但是View不能单独存在,它必须附着在Window上。Window实际是View的直接管理者。
Claims (4)
1.一种安卓系统软键盘自动调整位置的方法,其特征在于,包括步骤如下:
1)获取屏幕大小信息、软键盘大小信息;并将屏幕划分为三个区域;三个区域为,区域1、区域2、区域3;所述屏幕大小信息包括屏幕高度H1,屏幕宽度W1;所述软键盘大小信息包括,软键盘高度H2,软键盘宽度W2;
获取屏幕大小信息、软键盘大小信息的具体步骤如下:
1.1)获取所有Activity界面所能控制区域的根View;通过getChildAt()方法获取当前Activity界面中显示的View;
1.2)注册一个监听器;在当前View树的全局布局发生变化或者View树中View的可视状态发生变化时,进行通知回调;
1.3)获取改变后的Activity界面高度H3、Activity界面宽度W3;其中,H3通过在监听器中调用View.getWindowVisibleDisplayFrame()方法获得;
1.4)计算软键盘高度H2,H2=H1-H3;
2)获取焦点位置,得到当前用户进行输入操作的位置;
当前用户点击设备屏幕时,存储每次触点的坐标信息;判断输入框是否获得焦点,如果获得焦点,则将相应的触点位置存储为焦点位置;
3)在不同区域内对软键盘执行不同调整动作;
判断当前焦点所处区域;如果位于区域1中,则将软键盘调整至屏幕中间位置;如果位于区域2中,则将软键盘至屏幕顶部或者底部位置;如果位于区域3中,则将软键盘调整至屏幕顶部或者中间位置。
2.根据权利要求1所述的安卓系统软键盘自动调整位置的方法,其特征在于,所述步骤1)中,将屏幕划分为三个区域的具体步骤如下:
根据所述屏幕大小信息、软键盘大小信息将屏幕设置为三个区域,三个区域宽度相同,区域1的高度范围为(0,H2),区域2的高度范围为(H2,H3),区域3高度范围为(H3,H1)。
3.根据权利要求1所述的安卓系统软键盘自动调整位置的方法,其特征在于,所述步骤2)中,判断输入框是否获得焦点的方法为,在Activity中做以下处理:
A)取得EditText对象;
B)为EditText对象添加setOnFocusChangeListener(),重写onFocusChange方法;
C)onFocusChang()方法有两个参数,其中boolean类型的参数hasfocus为true时,判定输入框获得焦点。
4.根据权利要求1所述的安卓系统软键盘自动调整位置的方法,其特征在于,所述步骤3)的具体方法为:首先创建AreaType对象,存储当前焦点所处区域;通过getWindow()获取当前窗体;根据AreaType值,设置软键盘的不同布局。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710848827.1A CN107368242A (zh) | 2017-09-20 | 2017-09-20 | 一种安卓系统软键盘自动调整位置的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710848827.1A CN107368242A (zh) | 2017-09-20 | 2017-09-20 | 一种安卓系统软键盘自动调整位置的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107368242A true CN107368242A (zh) | 2017-11-21 |
Family
ID=60302810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710848827.1A Pending CN107368242A (zh) | 2017-09-20 | 2017-09-20 | 一种安卓系统软键盘自动调整位置的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368242A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109164971A (zh) * | 2018-07-31 | 2019-01-08 | 合肥联宝信息技术有限公司 | 一种显示屏的显示方法及显示装置 |
CN109407955A (zh) * | 2018-09-28 | 2019-03-01 | 广东省海洋工程装备技术研究所 | 用户界面交互方法、计算机装置、计算机可读存储介质 |
CN109582209A (zh) * | 2018-12-05 | 2019-04-05 | 珠海格力电器股份有限公司 | 一种hmi组态软件的软键盘输入方法、hmi组态软件及工业触摸屏 |
CN109710164A (zh) * | 2018-12-19 | 2019-05-03 | 北京金山安全软件有限公司 | 一种数字输入键盘的生成方法及相关设备 |
CN109725821A (zh) * | 2018-12-29 | 2019-05-07 | 北京金山安全软件有限公司 | 一种组件显示方法及装置 |
CN109739462A (zh) * | 2018-03-15 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种内容输入的方法及装置 |
CN109814965A (zh) * | 2019-01-10 | 2019-05-28 | 北京城市网邻信息技术有限公司 | H5页面的处理方法、装置、电子设备及存储介质 |
CN110531872A (zh) * | 2019-08-20 | 2019-12-03 | 北京小米移动软件有限公司 | 输入法窗口展示方法、装置、设备及存储介质 |
CN112988032A (zh) * | 2021-04-07 | 2021-06-18 | 北京字节跳动网络技术有限公司 | 控件展示方法、装置和电子设备 |
CN113238663A (zh) * | 2021-04-27 | 2021-08-10 | 北京麟卓信息科技有限公司 | 一种基于视图匹配的自适应键盘映射方法及装置 |
CN113467693A (zh) * | 2021-06-30 | 2021-10-01 | 网易(杭州)网络有限公司 | 界面控制方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003283867A (ja) * | 2002-03-22 | 2003-10-03 | Forecast Communications Inc | 受信装置 |
CN101329616A (zh) * | 2008-07-24 | 2008-12-24 | 宇龙计算机通信科技(深圳)有限公司 | 一种移动终端及其虚拟键盘的显示方法和系统 |
CN103577104A (zh) * | 2013-09-27 | 2014-02-12 | 苏州佳世达电通有限公司 | 一种虚拟键盘的显示方法、控制装置及触摸设备 |
CN104699404A (zh) * | 2015-03-26 | 2015-06-10 | 努比亚技术有限公司 | 一种软键盘的显示方法及装置 |
-
2017
- 2017-09-20 CN CN201710848827.1A patent/CN107368242A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003283867A (ja) * | 2002-03-22 | 2003-10-03 | Forecast Communications Inc | 受信装置 |
CN101329616A (zh) * | 2008-07-24 | 2008-12-24 | 宇龙计算机通信科技(深圳)有限公司 | 一种移动终端及其虚拟键盘的显示方法和系统 |
CN103577104A (zh) * | 2013-09-27 | 2014-02-12 | 苏州佳世达电通有限公司 | 一种虚拟键盘的显示方法、控制装置及触摸设备 |
CN104699404A (zh) * | 2015-03-26 | 2015-06-10 | 努比亚技术有限公司 | 一种软键盘的显示方法及装置 |
Non-Patent Citations (2)
Title |
---|
NDK-BAOZI: "Android Edittext 显示光标 获取焦点 监听焦点", 《HTTPS://BLOG.CSDN.NET/AAAWQQQ/ARTICLE/DETAILS/50259713?UTM_SOURCE=BLOGKPCL4》 * |
腾儿飞: "Android爬坑之旅:软键盘挡住输入框问题的终极解决方案", 《HTTPS://WWW.JIANSHU.COM/P/306482E17080》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739462A (zh) * | 2018-03-15 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种内容输入的方法及装置 |
CN109164971A (zh) * | 2018-07-31 | 2019-01-08 | 合肥联宝信息技术有限公司 | 一种显示屏的显示方法及显示装置 |
CN109407955A (zh) * | 2018-09-28 | 2019-03-01 | 广东省海洋工程装备技术研究所 | 用户界面交互方法、计算机装置、计算机可读存储介质 |
CN109582209A (zh) * | 2018-12-05 | 2019-04-05 | 珠海格力电器股份有限公司 | 一种hmi组态软件的软键盘输入方法、hmi组态软件及工业触摸屏 |
CN109710164A (zh) * | 2018-12-19 | 2019-05-03 | 北京金山安全软件有限公司 | 一种数字输入键盘的生成方法及相关设备 |
CN109725821A (zh) * | 2018-12-29 | 2019-05-07 | 北京金山安全软件有限公司 | 一种组件显示方法及装置 |
CN109814965A (zh) * | 2019-01-10 | 2019-05-28 | 北京城市网邻信息技术有限公司 | H5页面的处理方法、装置、电子设备及存储介质 |
CN109814965B (zh) * | 2019-01-10 | 2021-06-04 | 北京城市网邻信息技术有限公司 | H5页面的处理方法、装置、电子设备及存储介质 |
CN110531872A (zh) * | 2019-08-20 | 2019-12-03 | 北京小米移动软件有限公司 | 输入法窗口展示方法、装置、设备及存储介质 |
CN112988032A (zh) * | 2021-04-07 | 2021-06-18 | 北京字节跳动网络技术有限公司 | 控件展示方法、装置和电子设备 |
CN113238663A (zh) * | 2021-04-27 | 2021-08-10 | 北京麟卓信息科技有限公司 | 一种基于视图匹配的自适应键盘映射方法及装置 |
CN113467693A (zh) * | 2021-06-30 | 2021-10-01 | 网易(杭州)网络有限公司 | 界面控制方法、装置和电子设备 |
CN113467693B (zh) * | 2021-06-30 | 2023-07-21 | 网易(杭州)网络有限公司 | 界面控制方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368242A (zh) | 一种安卓系统软键盘自动调整位置的方法 | |
DE112016000085B4 (de) | Gerät, Verfahren und grafische Benutzerschnittstelle für die Navigation durch Medieninhalt | |
EP2866129B1 (en) | Cursor display position determination method and device | |
CN106708412B (zh) | 智能终端的控制方法和装置 | |
CN103096184B (zh) | 一种视频编辑方法及装置 | |
CN103226960B (zh) | 控制多媒体数据播放的方法和装置 | |
CN101741969A (zh) | 管理手机显示界面上多个控件的方法及其控件管理器 | |
CN108304132B (zh) | 图形显示方法、装置、设备及存储介质 | |
CN106155869A (zh) | 终端应用的后台运行控制方法及其装置 | |
CN104850350A (zh) | 一种触屏设备的截图方法及系统 | |
CN107305458A (zh) | 一种应用软件交互界面的自定义方法、系统及终端 | |
CN101859224A (zh) | 一种从数字图片中抠取目标对象的方法和系统 | |
CN109358791A (zh) | 一种截图方法、装置、存储介质及移动终端 | |
CN105607792A (zh) | 一种分层截图的方法、装置及终端 | |
WO2023030306A1 (zh) | 视频编辑方法、装置及电子设备 | |
CN109493294A (zh) | 一种图像处理方法及移动终端 | |
CN100579211C (zh) | 基于多级画面分割的快速数字视频控制方法 | |
CN102750134A (zh) | 一种生成手持终端操作系统图形界面的方法及手持终端 | |
CN103634691A (zh) | 一种在电视终端上编辑图标的方法和系统 | |
CN109164950A (zh) | 一种移动终端系统界面设置方法、装置、介质和设备 | |
CN103259932A (zh) | 一种触摸屏移动终端彩信的编辑方法及系统 | |
CN110189250B (zh) | 图片裁剪方法 | |
CN103513752B (zh) | 一种手势操作的方法、装置及系统 | |
CN106997271A (zh) | 单手控制方法和装置 | |
CN106792045A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171121 |