CN112379958A - 一种应用程序页面的滑动控制方法及装置 - Google Patents
一种应用程序页面的滑动控制方法及装置 Download PDFInfo
- Publication number
- CN112379958A CN112379958A CN202011292617.7A CN202011292617A CN112379958A CN 112379958 A CN112379958 A CN 112379958A CN 202011292617 A CN202011292617 A CN 202011292617A CN 112379958 A CN112379958 A CN 112379958A
- Authority
- CN
- China
- Prior art keywords
- view control
- sliding
- control
- determining
- application program
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000005540 biological transmission Effects 0.000 claims description 5
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 abstract 1
- 230000001960 triggered effect Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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/04883—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 for inputting data by handwriting, e.g. gesture or text
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种应用程序页面的滑动控制方法及装置,可以获得对应用程序页面的滑动指令,将滑动指令发送至第一视图控件中执行,以使得第一视图控件基于应用程序页面的当前展示位置,根据滑动指令控制应用程序页面进行滑动,禁止将滑动指令发送至第二视图控件中执行。本发明可以通过对第一视图控件中的方法进行修改,在使得第一视图控件对滑动事件进行识别及拦截,获得滑动指令的同时,可以禁止第二视图控件在滑动事件发生时获得滑动指令,避免多个视图控件获得滑动指令,从而避免多个视图控件对应用程序页面进行滑动控制而导致的滑动冲突。
Description
技术领域
本发明涉及应用程序页面的滑动技术领域,尤其涉及一种应用程序页面的滑动控制方法及装置。
背景技术
在Android系统中,ScrollView控件和RecyclerView控件都是经常使用到应用程序页面中的视图控件,均可以控制应用程序页面在显示屏幕中进行滑动。
其中,RecyclerView控件是能够将图片、文字、视频等数据内容以列表的形式进行展示的列表视图控件。现有技术经常将RecyclerView控件嵌套在ScrollView控件中,以实现较为复杂需求的应用程序页面。需要说明的是,在设置有ScrollView控件和RecyclerView控件的应用程序页面上进行滑动时,整个应用程序页面都会进行滑动,而非列表部分进行单独的滑动。
但是,由于ScrollView控件和RecyclerView控件都能控制应用程序页面进行滑动,所以,用户在ScrollView控件中嵌套有RecyclerView控件的应用程序页面上滑动时,可能会产生滑动冲突,即用户在滑动时可能会有卡顿现象。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的应用程序页面的滑动控制方法及装置,技术方案如下:
一种应用程序页面的滑动控制方法,所述应用程序页面中设置有第一视图控件、第二视图控件和第三视图控件,所述第一视图控件为可控制所述应用程序页面进行滑动的视图控件,第二视图控件为可控制所述应用程序页面进行滑动的列表视图控件,所述第二视图控件嵌套在所述第一视图控件中,所述第一视图控件为所述第三视图控件的子类视图控件,所述第二视图控件和所述第三视图控件均为系统控件,所述方法包括:
获得对所述应用程序页面的滑动指令;
将所述滑动指令发送至所述第一视图控件中执行,以使得所述第一视图控件基于所述应用程序页面的当前展示位置,根据所述滑动指令控制所述应用程序页面进行滑动;
禁止将所述滑动指令发送至所述第二视图控件中执行。
可选的,所述第二视图控件为RecyclerView控件,所述第三视图控件为ScrollView控件。
可选的,在所述获得对所述应用程序页面的滑动指令之前,所述方法还包括:
确定在所述应用程序页面上进行的触控事件中的初始触摸位置;
确定所述初始触摸位置与预设边界之间的垂直距离,将该垂直距离确定为第一垂直距离;
在确定所述初始触摸位置后的预设时长内,确定所述触控事件中的结束触摸位置;
确定所述结束触摸位置与所述预设边界之间的垂直距离,将该垂直距离确定为第二垂直距离;
计算所述第一垂直距离与所述第二垂直距离的差值;
判断所述差值的绝对值是否大于预设阈值,根据判断结果确定是否执行所述获得对所述应用程序页面的滑动指令的步骤。
可选的,所述根据判断结果确定是否执行所述获得对所述应用程序页面的滑动指令的步骤,包括:
如果所述差值的绝对值大于所述预设阈值,则确定所述触控事件为滑动事件,执行所述获得对所述应用程序页面的滑动指令的步骤。
可选的,所述根据判断结果确定是否执行所述获得对所述应用程序页面的滑动指令的步骤,包括:
如果所述差值的绝对值不大于所述预设阈值,则确定所述触控事件为非滑动事件,禁止执行所述获得对所述应用程序页面的滑动指令的步骤。
一种应用程序页面的滑动控制装置,所述应用程序页面中设置有第一视图控件、第二视图控件和第三视图控件,所述第一视图控件为可控制所述应用程序页面进行滑动的视图控件,第二视图控件为可控制所述应用程序页面进行滑动的列表视图控件,所述第二视图控件嵌套在所述第一视图控件中,第一视图控件为所述第三视图控件的子类视图控件,所述第二视图控件和所述第三视图控件均为系统控件,所述装置包括:滑动指令获得单元、滑动指令发送单元和禁止发送单元,其中:
所述滑动指令获得单元,被配置为执行:获得对所述应用程序页面的滑动指令;
所述滑动指令发送单元,被配置为执行:将所述滑动指令发送至所述第一视图控件中执行,以使得所述第一视图控件基于所述应用程序页面的当前展示位置,根据所述滑动指令控制所述应用程序页面进行滑动;
所述禁止发送单元,被配置为执行:禁止将所述滑动指令发送至所述第二视图控件中执行。
可选的,所述第二视图控件为RecyclerView控件,所述第三视图控件为ScrollView控件。
可选的,所述装置还包括:第一确定单元、第二确定单元、第三确定单元、第四确定单元、计算单元、判断单元和第五确定单元,其中:
所述第一确定单元,被配置为执行:在所述获得对所述应用程序页面的滑动指令之前,确定在所述应用程序页面上进行的触控事件中的初始触摸位置;
所述第二确定单元,被配置为执行:确定所述初始触摸位置与预设边界之间的垂直距离,将该垂直距离确定为第一垂直距离;
所述第三确定单元,被配置为执行:在确定所述初始触摸位置后的预设时长内,确定所述触控事件中的结束触摸位置;
所述第四确定单元,被配置为执行:确定所述结束触摸位置与所述预设边界之间的垂直距离,将该垂直距离确定为第二垂直距离;
所述计算单元,被配置为执行:计算所述第一垂直距离与所述第二垂直距离的差值;
所述判断单元,被配置为执行:判断所述差值的绝对值是否大于预设阈值;
所述第五确定单元,被配置为执行:根据判断结果确定是否触发所述滑动指令获得单元。
可选的,所述第五确定单元,具体被配置为执行:
如果所述差值的绝对值大于所述预设阈值,则确定所述触控事件为滑动事件,触发所述滑动指令获得单元。
可选的,所述第五确定单元,具体被配置为执行:
如果所述差值的绝对值不大于所述预设阈值,则确定所述触控事件为非滑动事件,禁止触发所述滑动指令获得单元。
本实施例提出的应用程序页面的滑动控制方法及装置,应用程序页面中设置有第一视图控件、第二视图控件和第三视图控件,第一视图控件为可控制应用程序页面进行滑动的视图控件,第二视图控件为可控制应用程序页面进行滑动的列表视图控件,第二视图控件嵌套在第一视图控件中,第一视图控件为第三视图控件的子类视图控件,第二视图控件和第三视图控件均为系统控件。本发明可以获得对应用程序页面的滑动指令,将滑动指令发送至第一视图控件中执行,以使得第一视图控件基于应用程序页面的当前展示位置,根据滑动指令控制应用程序页面进行滑动,禁止将滑动指令发送至第二视图控件中执行。本发明可以通过对第一视图控件中的方法进行修改,在使得第一视图控件对滑动事件进行识别及拦截,获得滑动指令的同时,可以禁止第二视图控件在滑动事件发生时获得滑动指令,避免多个视图控件获得滑动指令,从而避免多个视图控件对应用程序页面进行滑动控制而导致的滑动冲突。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本发明实施例提供的一种应用程序页面的滑动控制方法的流程图;
图2示出了本发明实施例提供的另一种应用程序页面的滑动控制方法的流程图;
图3示出了本发明实施例提供的另一种应用程序页面的滑动控制方法的流程图;
图4示出了本发明实施例提供的一种应用程序页面的滑动控制装置的结构示意图;
图5示出了本发明实施例提供的另一种应用程序页面的滑动控制装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
如图1所示,本实施例提出了一种应用程序页面的滑动控制方法,在该方法中,应用程序页面中设置有第一视图控件、第二视图控件和第三视图控件,第一视图控件为可控制应用程序页面进行滑动的视图控件,第二视图控件为可控制应用程序页面进行滑动的列表视图控件,第二视图控件嵌套在第一视图控件中,第一视图控件为第三视图控件的子类视图控件,第二视图控件和第三视图控件均为系统控件。该方法可以包括以下步骤:
S100、获得对应用程序页面的滑动指令。
需要说明的是,本发明可以应用于安装在电子设备中的Android系统。其中,本发明对于电子设备的具体设备类型不做限定,比如手机、平板电脑和电脑。可以理解的是,本发明也可以应用于其它安装在电子设备中的其它操作系统,比如IOS系统。
其中,应用程序页面可以是安装在电子设备中的某个应用程序中的页面,本发明对于应用程序的类型不做限定。需要说明的是,应用程序页面中的页面内容可以超出电子设备的屏幕或者页面显示框体的显示范围,本发明可以通过在应用程序页面中设置第一视图控件、第二视图控件和第三视图控件将应用程序页面设置为滚动视图,使得应用程序页面可以在电子设备的屏幕或者页面显示框体中进行滚动显示,在滚动过程中显示出应用程序页面的全部页面内容。
其中,第三视图控件可以作为应用程序页面的布局管理器。需要说明的是,本发明在应用程序页面中设置第一视图控件、第二视图控件和第三视图控件时,可以先行在应用程序页面中设置第三视图控件,即可以先行设置布局管理器,之后再在应用程序页面中设置其它的视图控件。
其中,第二视图控件可以为设置在应用程序页面中的列表视图控件。本发明可以通过在应用程序页面中设置第二视图控件,来将某些图片、文字或视频类型的数据内容以列表的形式作为应用程序页面的页面内容中的一部分,并展示在应用程序页面中。需要说明的是,本发明可以在应用程序页面中设置第三视图控件后,将第二视图控件嵌套在应用程序页面的第三视图控件中。可选的,第二视图控件为RecyclerView控件,第三视图控件为ScrollView控件。
可以理解的是,应用程序页面中设置有第二视图控件和第三视图控件中时,应用程序页面在滑动过程中可能会出现滑动冲突的问题。为解决此问题,本发明可以在应用程序页面中自定义出第三视图控件的子类视图控件,并对子类视图控件中的方法进行修改。需要说明的是,第三视图控件和第二视图控件均为系统控件,即系统提供的视图控件,而非自定义出的视图控件,第三视图控件和第二视图控件中的方法通常不能进行修改。
其中,第一视图控件即为第三视图控件的子类视图控件,第一视图控件可以继承第三视图控件的所有属性和方法。本发明可以在第一视图控件的基础上,对第一视图控件中的方法进行修改,并在布局文件中引用第一视图控件,使得第一视图控件可以识别并拦截对应用程序页面的滑动事件,获得与滑动事件对应的滑动指令,将获得的滑动指令发送至第一视图控件中执行,避免应用程序页面的滑动冲突。
具体的,本发明可以先行获得对应用程序页面的滑动指令。其中,滑动指令可以是由用户通过在电子设备的显示屏幕上进行手指的滑动触控生成,也可以是由用户通过电子设备的外部设备(比如鼠标、键盘)在电子设备的显示屏幕上进行触控操作生成。可以理解的是,滑动指令也可以是由相关的软件生成,比如爬虫软件。需要说明的是,本发明对于滑动指令的生成方式不做限定。
S200、将滑动指令发送至第一视图控件中执行,以使得第一视图控件基于应用程序页面的当前展示位置,根据滑动指令控制应用程序页面进行滑动。
具体的,本发明可以在获得对应用程序页面的滑动指令后,仅将滑动指令发送至第一视图控件中执行,使得第一视图控件可以根据滑动指令控制应用程序页面进行滑动。
其中,本发明可以通过对第一视图控件中的方法进行修改,使得第一视图控件可以在滑动事件发生时对滑动事件进行识别和拦截,获得与滑动事件对应的滑动指令并可以根据滑动指令来控制应用程序页面进行滑动。
需要说明的是,本发明对于滑动指令的指令内容不做限定。比如,滑动指令可以包括滑动速度,当滑动速度较快时,第一视图控件可以控制应用程序页面进行较快速度的滑动;当滑动速度较慢时,第一视图控件可以控制应用程序页面进行较慢速度的滑动。
S300、禁止将滑动指令发送至第二视图控件中执行。
其中,本发明在获得滑动指令后,可以禁止将滑动指令发送到第二视图控件中执行,而仅将滑动指令发送到第一视图控件中执行,使得仅有第一视图控件可以根据滑动指令控制应用程序页面进行滑动,而避免多个视图控件根据滑动指令控制应用程序页面进行滑动,从而可以避免滑动冲突。
可以理解的是,由于第一视图控件为第三视图控件的子类视图控件,拥有第三视图控件的所有属性和方法,因此,在设置有第一视图控件、第二视图控件和第三视图控件中的应用程序页面中,为实现将滑动指令发送至第一视图控件中执行,本发明不能禁止将滑动指令发送至第三视图控件中执行。
需要说明的是,本发明可以通过对第一视图控件中的方法进行修改,在使得第一视图控件可以获得滑动指令的同时,可以禁止第二视图控件在滑动事件发生时获得滑动指令,避免多个视图控件获得滑动指令,从而避免多个视图控件对应用程序页面进行滑动控制而导致的滑动冲突。
还需要说明的是,本发明对于步骤S300和S200的先后执行顺序不做限定。本发明可以先执行步骤S200,之后执行步骤S300,如图1所示;也可以先执行步骤S300,之后执行步骤S200。当然,本发明也可以同时执行步骤S200和S300。
本实施例提出的应用程序页面的滑动控制方法,应用程序页面中设置有第一视图控件、第二视图控件和第三视图控件,第一视图控件为可控制应用程序页面进行滑动的视图控件,第二视图控件为可控制应用程序页面进行滑动的列表视图控件,第二视图控件嵌套在第一视图控件中,第一视图控件为第三视图控件的子类视图控件,第二视图控件和第三视图控件均为系统控件。该滑动控制方法可以获得对应用程序页面的滑动指令,将滑动指令发送至第一视图控件中执行,以使得第一视图控件基于应用程序页面的当前展示位置,根据滑动指令控制应用程序页面进行滑动,禁止将滑动指令发送至第二视图控件中执行。该滑动控制方法可以通过对第一视图控件中的方法进行修改,在使得第一视图控件对滑动事件进行识别及拦截,获得滑动指令的同时,可以禁止第二视图控件在滑动事件发生时获得滑动指令,避免多个视图控件获得滑动指令,从而避免多个视图控件对应用程序页面进行滑动控制而导致的滑动冲突。
基于图1所示的步骤,本实施例提出另一种应用程序页面的滑动控制方法,如图2所示。该方法在步骤S100之前,还可以包括以下步骤:
S10、确定在应用程序页面上进行的触控事件中的初始触摸位置。
需要说明的是,本发明可以在获得滑动指令之前,对发生在应用程序页面上的触控事件进行识别,确定触控事件是否为滑动事件,如果是,则可以执行步骤S100、S200和S300;否则,无需执行步骤S100、S200和S300,避免运算资源的消耗,提高运算资源的利用率。
其中,触控事件可以是由用户通过手指对应用程序页面进行触摸而发起的事件,也可以是由用户通过上述外部设备点击选中应用程序页面而发起的事件。当然,触控事件也可以是由相关软件选中应用程序页面而发起的事件。需要说明的是,本发明对于触控事件的生成方式不做限定。
其中,初始触摸位置可以是在应用程序页面上进行的某次触控事件中初始的触摸位置。与触控事件的上述生成方式相对应的是,初始触摸位置可以是由用户通过手指对应用程序页面进行触摸而生成的,也可以是由用户通过上述外部设备点击选中应用程序页面而生成的,也可以是由相关软件选中应用程序页面而生成的。
具体的,本发明在每次检测到在应用程序页面上的初始触摸位置时,均可以确定应用程序页面上开始进行触控事件。
S20、确定初始触摸位置与预设边界之间的垂直距离,将该垂直距离确定为第一垂直距离。
其中,预设边界可以是在电子设备的显示屏幕上与应用程序页面的可滑动方向垂直的坐标轴。比如,当应用程序页面在电子设备的显示屏幕中的可滑动方向为上、下方向时,预设边界可以是显示屏幕上与上、下方向垂直的方向上的坐标轴;比如,当应用程序页面在电子设备的显示屏幕中的可滑动方向为左、右方向时,预设边界可以是显示屏幕上与左、右方向垂直的方向上的坐标轴。
具体的,本发明可以在应用程序页面上检测到初始触摸位置时,获得初始触摸位置与预设边界之间的垂直距离。
S30、在确定初始触摸位置后的预设时长内,确定触控事件的结束触摸位置。
需要说明的是,本发明如果在检测到初始触摸位置后的预设时长内,未在应用程序页面上检测到触摸位置的变化,则可以确定当前触控事件的结束,并可以确定当前触控事件为非滑动事件,无需执行步骤S100、S200和S300。本发明可以在下一次检测到初始触摸位置时,再次确定触控事件的生成。
其中,预设时长可以由技术人员根据实际情况进行确定,本发明对此不做限定。
具体的,本发明如果在检测到初始触摸位置后的预设时长内,检测到触摸位置的变化,可以将变化后的触摸位置确定为结束触摸位置。需要说明的是,结束触摸位置可以作为下一次触控事件的初始触摸位置,并重新执行步骤S10。
S40、确定结束触摸位置与预设边界之间的垂直距离,将该垂直距离确定为第二垂直距离;
具体的,本发明可以在检测到结束触摸位置后,获得结束触摸位置和预设边界之间的垂直距离。
S50、计算第一垂直距离与第二垂直距离的差值;
具体的,在获得第一垂直距离和第二垂直距离后,本发明可以计算第一垂直距离与第二垂直距离的差值,以根据该差值确定触控事件是否为滑动事件。
S60、判断差值的绝对值是否大于预设阈值,根据判断结果确定是否执行步骤S100。
其中,预设阈值可以是用于确定触控事件是否为滑动事件的最短滑动距离,如果差值大于该最短滑动距离时,则可以触发滑动事件的生成。需要说明的是,预设阈值可以由技术人员根据实际情况进行确定,本发明对此不做限定。
可选的,如图3所示,在本实施例提出的其它应用程序页面的滑动控制方法中,步骤S60可以包括:
S61、判断差值的绝对值是否大于预设阈值,如果是,则执行步骤S71;否则,执行步骤S72。
S71、确定触控事件为滑动事件,执行步骤S100。
S72、确定触控事件为非滑动事件,禁止执行步骤S100。
需要说明的是,如果上述差值的绝对值大于预设阈值,则本发明确定触控事件为滑动事件,并执行步骤S100,即获得与滑动事件对应的滑动指令。如果上述差值的绝对值不大于预设阈值,则本发明确定触控事件为非滑动事件,禁止执行步骤S100。
本实施例提出的应用程序页面的滑动控制方法,可以确定在应用程序页面上进行的触控事件是否为滑动事件,在确定触控事件为滑动事件时控制应用程序页面进行滑动,在确定触控事件为非滑动事件时无需控制应用程序页面进行滑动,避免运算资源的消耗,提高对运算资源的利用率。
基于图1和图2所示的步骤,本实施例提出另一种应用程序页面的滑动控制方法。在该方法中,当第三视图控件为ScrollView控件,第二视图控件为RecyclerView控件时,本发明可以通过创建第三视图控件的子类视图控件即第一视图控件,并通过重写第一视图控件中的方法,在布局文件中引用第一视图控件,实现第一视图控件对滑动事件的拦截和对滑动指令的执行。
其中,本发明可以将第一视图控件记为MyScrollView控件。需要说明的是,本发明在创建出MyScrollView控件后,可以通过计算机程序代码来实现步骤S10、S20、S30、S40、S50和S60。
具体的,在MyScrollView控件的计算机程序代码中,本发明可以先行定义变量,down X:初始触摸位置距离电子设备的显示屏幕的左边界(即Y轴)的距离,downY:初始触摸位置距电子设备的显示屏幕的上边界(即X轴)的距离,mTouchSlop:代表上述预设阈值的变量,并重写MyScrollView控件中的方法。程序代码可以如下:
其中,本发明可以重写MyScrollView控件中的onInterceptTouchEvent()方法,程序代码如下:
其中,发明可以在上述onInterceptTouchEvent()方法中拦截滑动事件。具体的,当预设边界为上边界时,在检测到触摸事件中的初次触摸位置时可以获得第一垂直距离down Y,在检测到触摸事件中的结束触摸位置时获得第二垂直距离move Y,如果down Y与move Y的差值的绝对值大于预设阈值mTouchSlop,则确定触摸事件中为滑动事件并对滑动事件进行拦截,获得与滑动事件对应的滑动指令,将获得的滑动指令发送至MyScrollView控件执行。程序代码如下:
需要说明的是,本发明需在布局文件中引用MyScrollView控件。
本实施例提出的应用程序页面的滑动控制方法,可以通过创建MyScrollView控件,重写MyScrollView控件中的方法,使得MyScrollView控件可以拦截滑动事件,并执行滑动指令,避免滑动指令下发至其它视图控件执行,从而可以避免滑动冲突。
与图1所示步骤相对应,本实施例提出一种应用程序页面的滑动控制装置,如图4所示。在该装置中,应用程序页面中设置有第一视图控件、第二视图控件和第三视图控件,第一视图控件为可控制应用程序页面进行滑动的视图控件,第二视图控件为可控制应用程序页面进行滑动的列表视图控件,第二视图控件嵌套在第一视图控件中,第一视图控件为第三视图控件的子类视图控件,第二视图控件和第三视图控件均为系统控件。该装置可以包括:滑动指令获得单元100、滑动指令发送单元200和禁止发送单元300,其中:
滑动指令获得单元100,被配置为执行:获得对应用程序页面的滑动指令;
需要说明的是,本发明可以应用于安装在电子设备中的Android系统。其中,本发明对于电子设备的具体设备类型不做限定。可以理解的是,本发明也可以应用于其它安装在电子设备中的其它操作系统。
其中,应用程序页面可以是安装在电子设备中的某个应用程序中的页面,本发明对于应用程序的类型不做限定。需要说明的是,应用程序页面中的页面内容可以超出电子设备的屏幕或者页面显示框体的显示范围,本发明可以通过在应用程序页面中设置第一视图控件、第二视图控件和第三视图控件将应用程序页面设置为滚动视图,使得应用程序页面可以在电子设备的屏幕或者页面显示框体中进行滚动显示,在滚动过程中显示出应用程序页面的全部页面内容。
其中,第三视图控件可以作为应用程序页面的布局管理器。需要说明的是,本发明在应用程序页面中设置第一视图控件、第二视图控件和第三视图控件时,可以先行在应用程序页面中设置第三视图控件,即可以先行设置布局管理器,之后再在应用程序页面中设置其它的视图控件。
其中,第二视图控件可以为设置在应用程序页面中的列表视图控件。本发明可以通过在应用程序页面中设置第二视图控件,来将某些图片、文字或视频类型的数据内容以列表的形式作为应用程序页面的页面内容中的一部分,并展示在应用程序页面中。需要说明的是,本发明可以在应用程序页面中设置第三视图控件后,将第二视图控件嵌套在应用程序页面的第三视图控件中。可选的,第二视图控件为RecyclerView控件,第三视图控件为ScrollView控件。
可以理解的是,应用程序页面中设置有第二视图控件和第三视图控件中时,应用程序页面在滑动过程中可能会出现滑动冲突的问题。为解决此问题,本发明可以在应用程序页面中自定义出第三视图控件的子类视图控件,并对子类视图控件中的方法进行修改。需要说明的是,第三视图控件和第二视图控件均为系统控件,即为系统提供的视图控件,而非自定义出的视图控件,第三视图控件和第二视图控件中的方法通常不能进行修改。
其中,第一视图控件即为第三视图控件的子类视图控件,第一视图控件可以继承第三视图控件的所有属性和方法。本发明可以在第一视图控件的基础上,对第一视图控件中的方法进行修改,并在布局文件中引用第一视图控件,使得第一视图控件可以识别并拦截对应用程序页面的滑动事件,获得与滑动事件对应的滑动指令,将获得的滑动指令发送至第一视图控件中执行,避免应用程序页面的滑动冲突。
具体的,本发明可以先行获得对应用程序页面的滑动指令。其中,滑动指令可以是由用户通过在电子设备的显示屏幕上进行手指的滑动触控生成,也可以是由用户通过电子设备的外部设备(比如鼠标、键盘)在电子设备的显示屏幕上进行触控操作生成。可以理解的是,滑动指令也可以是由相关的软件生成,比如爬虫软件。需要说明的是,本发明对于滑动指令的生成方式不做限定。
滑动指令发送单元200,被配置为执行:将滑动指令发送至第一视图控件中执行,以使得第一视图控件基于应用程序页面的当前展示位置,根据滑动指令控制应用程序页面进行滑动;
具体的,本发明可以在获得对应用程序页面的滑动指令后,仅将滑动指令发送至第一视图控件中执行,使得第一视图控件可以根据滑动指令控制应用程序页面进行滑动。
其中,本发明可以通过对第一视图控件中的方法进行修改,使得第一视图控件可以在滑动事件发生时对滑动事件进行识别和拦截,获得与滑动事件对应的滑动指令并可以根据滑动指令来控制应用程序页面进行滑动。
需要说明的是,本发明对于滑动指令的指令内容不做限定。比如,滑动指令可以包括滑动速度,当滑动速度较快时,第一视图控件可以控制应用程序页面进行较快速度的滑动;当滑动速度较慢时,第一视图控件可以控制应用程序页面进行较慢速度的滑动。
禁止发送单元300,被配置为执行:禁止将滑动指令发送至第二视图控件中执行。
其中,本发明在获得滑动指令后,可以禁止将滑动指令发送到第二视图控件中执行,仅将滑动指令发送到第一视图控件中执行,使得仅有第一视图控件可以根据滑动指令控制应用程序页面进行滑动,而避免多个视图控件根据滑动指令控制应用程序页面进行滑动,从而可以避免滑动冲突。
可以理解的是,由于第一视图控件为第三视图控件的子类视图控件,拥有第三视图控件的所有属性和方法,因此,在设置有第一视图控件、第二视图控件和第三视图控件中的应用程序页面中,为实现将滑动指令发送至第一视图控件中执行,本发明不能禁止将滑动指令发送至第三视图控件中执行。
需要说明的是,本发明可以通过对第一视图控件中的方法进行修改,在使得第一视图控件可以获得滑动指令的同时,可以禁止第二视图控件在滑动事件发生时获得滑动指令,避免多个视图控件获得滑动指令,从而避免多个视图控件对应用程序页面进行滑动控制而导致的滑动冲突。
还需要说明的是,本发明对于滑动指令发送单元200和禁止发送单元300的先后触发顺序不做限定。本发明可以先触发滑动指令发送单元200,之后触发禁止发送单元300,如图1所示;也可以先触发禁止发送单元300,之后触发滑动指令发送单元200。当然,本发明也可以同时触发滑动指令发送单元200和禁止发送单元300。
本实施例提出的应用程序页面的滑动控制装置,可以通过对第一视图控件中的方法进行修改,在使得第一视图控件对滑动事件进行识别及拦截,获得滑动指令的同时,可以禁止第二视图控件在滑动事件发生时获得滑动指令,避免多个视图控件获得滑动指令,从而避免多个视图控件对应用程序页面进行滑动控制而导致的滑动冲突。
基于图4所示的结构示意图,本实施例提出另一种应用程序页面的滑动控制装置,如图5所示。该装置还可以包括:第一确定单元10、第二确定单元20、第三确定单元30、第四确定单元40、计算单元50、判断单元60和第五确定单元70,其中:
第一确定单元10,被配置为执行:在获得对应用程序页面的滑动指令之前,确定在应用程序页面上进行的触控事件中的初始触摸位置;
需要说明的是,本发明可以在获得滑动指令之前,对发生在应用程序页面上的触控事件进行识别,确定触控事件是否为滑动事件,如果是,则可以触发滑动指令获得单元100、滑动指令发送单元200和禁止发送单元300;否则,无需触发滑动指令获得单元100、滑动指令发送单元200和禁止发送单元300,避免运算资源的消耗,提高运算资源的利用率。
其中,触控事件可以是由用户通过手指对应用程序页面进行触摸而发起的事件,也可以是由用户通过上述外部设备点击选中应用程序页面而发起的事件。当然,触控事件也可以是由相关软件选中应用程序页面而发起的事件。需要说明的是,本发明对于触控事件的生成方式不做限定。
其中,初始触摸位置可以是在应用程序页面上进行的某次触控事件中初始的触摸位置。与触控事件的上述生成方式相对应的是,初始触摸位置可以是由用户通过手指对应用程序页面进行触摸而生成的,也可以是由用户通过上述外部设备点击选中应用程序页面而生成的,也可以是由相关软件选中应用程序页面而生成的。
具体的,本发明在每次检测到在应用程序页面上的初始触摸位置时,均可以确定应用程序页面上开始进行触控事件。
第二确定单元20,被配置为执行:确定初始触摸位置与预设边界之间的垂直距离,将该垂直距离确定为第一垂直距离;
其中,预设边界可以是在电子设备的显示屏幕上与应用程序页面的可滑动方向垂直的坐标轴。
具体的,本发明可以在应用程序页面上检测到初始触摸位置时,获得初始触摸位置与预设边界之间的垂直距离。
第三确定单元30,被配置为执行:在确定初始触摸位置后的预设时长内,确定触控事件中的结束触摸位置;
需要说明的是,本发明如果在检测到初始触摸位置后的预设时长内,未在应用程序页面上检测到触摸位置的变化,则可以确定当前触控事件的结束,并可以确定当前触控事件为非滑动事件,无需触发滑动指令获得单元100、滑动指令发送单元200和禁止发送单元300。本发明可以在下一次检测到初始触摸位置时,再次确定触控事件的生成。
其中,预设时长可以由技术人员根据实际情况进行确定,本发明对此不做限定。
具体的,本发明如果在检测到初始触摸位置后的预设时长内,检测到触摸位置的变化,可以将变化后的触摸位置确定为结束触摸位置。需要说明的是,结束触摸位置可以作为下一次触控事件的初始触摸位置,并重新触发滑动指令获得单元100。
第四确定单元40,被配置为执行:确定结束触摸位置与预设边界之间的垂直距离,将该垂直距离确定为第二垂直距离;
具体的,本发明可以在检测到结束触摸位置后,获得结束触摸位置和预设边界之间的垂直距离。
计算单元50,被配置为执行:计算第一垂直距离与第二垂直距离的差值;
具体的,在获得第一垂直距离和第二垂直距离后,本发明可以计算第一垂直距离与第二垂直距离的差值,以根据该差值确定触控事件是否为滑动事件。
判断单元60,被配置为执行:判断差值的绝对值是否大于预设阈值;
第五确定单元70,被配置为执行:根据判断结果确定是否触发滑动指令获得单元100。
其中,预设阈值可以是用于确定触控事件是否为滑动事件的最短滑动距离,如果差值大于该最短滑动距离时,则可以触发滑动事件的生成,获得与滑动事件对应的滑动指令。需要说明的是,预设阈值可以由技术人员根据实际情况进行确定,本发明对此不做限定。
可选的,在本实施例提出的其它应用程序页面的滑动控制装置中,第五确定单元70,可以具体被配置为执行:
如果差值的绝对值大于预设阈值,则确定触控事件为滑动事件,触发滑动指令获得单元100;如果差值的绝对值不大于预设阈值,则确定触控事件为非滑动事件,禁止触发滑动指令获得单元100。
需要说明的是,如果差值的绝对值大于预设阈值,则本发明确定触控事件为滑动事件,并触发滑动指令获得单元100获得与滑动事件对应的滑动指令。如果差值的绝对值不大于预设阈值,则本发明确定触控事件为非滑动事件,禁止执行滑动指令获得单元100,避免运算资源的消耗,提高对运算资源的利用率。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种应用程序页面的滑动控制方法,其特征在于,所述应用程序页面中设置有第一视图控件、第二视图控件和第三视图控件,所述第一视图控件为可控制所述应用程序页面进行滑动的视图控件,第二视图控件为可控制所述应用程序页面进行滑动的列表视图控件,所述第二视图控件嵌套在所述第一视图控件中,所述第一视图控件为所述第三视图控件的子类视图控件,所述第二视图控件和所述第三视图控件均为系统控件,所述方法包括:
获得对所述应用程序页面的滑动指令;
将所述滑动指令发送至所述第一视图控件中执行,以使得所述第一视图控件基于所述应用程序页面的当前展示位置,根据所述滑动指令控制所述应用程序页面进行滑动;
禁止将所述滑动指令发送至所述第二视图控件中执行。
2.根据权利要求1所述的方法,其特征在于,所述第二视图控件为RecyclerView控件,所述第三视图控件为ScrollView控件。
3.根据权利要求1所述的方法,其特征在于,在所述获得对所述应用程序页面的滑动指令之前,所述方法还包括:
确定在所述应用程序页面上进行的触控事件中的初始触摸位置;
确定所述初始触摸位置与预设边界之间的垂直距离,将该垂直距离确定为第一垂直距离;
在确定所述初始触摸位置后的预设时长内,确定所述触控事件中的结束触摸位置;
确定所述结束触摸位置与所述预设边界之间的垂直距离,将该垂直距离确定为第二垂直距离;
计算所述第一垂直距离与所述第二垂直距离的差值;
判断所述差值的绝对值是否大于预设阈值,根据判断结果确定是否执行所述获得对所述应用程序页面的滑动指令的步骤。
4.根据权利要求3所述的方法,其特征在于,所述根据判断结果确定是否执行所述获得对所述应用程序页面的滑动指令的步骤,包括:
如果所述差值的绝对值大于所述预设阈值,则确定所述触控事件为滑动事件,执行所述获得对所述应用程序页面的滑动指令的步骤。
5.根据权利要求3所述的方法,其特征在于,所述根据判断结果确定是否执行所述获得对所述应用程序页面的滑动指令的步骤,包括:
如果所述差值的绝对值不大于所述预设阈值,则确定所述触控事件为非滑动事件,禁止执行所述获得对所述应用程序页面的滑动指令的步骤。
6.一种应用程序页面的滑动控制装置,其特征在于,所述应用程序页面中设置有第一视图控件、第二视图控件和第三视图控件,所述第一视图控件为可控制所述应用程序页面进行滑动的视图控件,第二视图控件为可控制所述应用程序页面进行滑动的列表视图控件,所述第二视图控件嵌套在所述第一视图控件中,第一视图控件为所述第三视图控件的子类视图控件,所述第二视图控件和所述第三视图控件均为系统控件,所述装置包括:滑动指令获得单元、滑动指令发送单元和禁止发送单元,其中:
所述滑动指令获得单元,被配置为执行:获得对所述应用程序页面的滑动指令;
所述滑动指令发送单元,被配置为执行:将所述滑动指令发送至所述第一视图控件中执行,以使得所述第一视图控件基于所述应用程序页面的当前展示位置,根据所述滑动指令控制所述应用程序页面进行滑动;
所述禁止发送单元,被配置为执行:禁止将所述滑动指令发送至所述第二视图控件中执行。
7.根据权利要求6所述的装置,其特征在于,所述第二视图控件为RecyclerView控件,所述第三视图控件为ScrollView控件。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:第一确定单元、第二确定单元、第三确定单元、第四确定单元、计算单元、判断单元和第五确定单元,其中:
所述第一确定单元,被配置为执行:在所述获得对所述应用程序页面的滑动指令之前,确定在所述应用程序页面上进行的触控事件中的初始触摸位置;
所述第二确定单元,被配置为执行:确定所述初始触摸位置与预设边界之间的垂直距离,将该垂直距离确定为第一垂直距离;
所述第三确定单元,被配置为执行:在确定所述初始触摸位置后的预设时长内,确定所述触控事件中的结束触摸位置;
所述第四确定单元,被配置为执行:确定所述结束触摸位置与所述预设边界之间的垂直距离,将该垂直距离确定为第二垂直距离;
所述计算单元,被配置为执行:计算所述第一垂直距离与所述第二垂直距离的差值;
所述判断单元,被配置为执行:判断所述差值的绝对值是否大于预设阈值;
所述第五确定单元,被配置为执行:根据判断结果确定是否触发所述滑动指令获得单元。
9.根据权利要求8所述的装置,其特征在于,所述第五确定单元,具体被配置为执行:
如果所述差值的绝对值大于所述预设阈值,则确定所述触控事件为滑动事件,触发所述滑动指令获得单元。
10.根据权利要求8所述的装置,其特征在于,所述第五确定单元,具体被配置为执行:
如果所述差值的绝对值不大于所述预设阈值,则确定所述触控事件为非滑动事件,禁止触发所述滑动指令获得单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011292617.7A CN112379958A (zh) | 2020-11-18 | 2020-11-18 | 一种应用程序页面的滑动控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011292617.7A CN112379958A (zh) | 2020-11-18 | 2020-11-18 | 一种应用程序页面的滑动控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112379958A true CN112379958A (zh) | 2021-02-19 |
Family
ID=74585069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011292617.7A Pending CN112379958A (zh) | 2020-11-18 | 2020-11-18 | 一种应用程序页面的滑动控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112379958A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051016A (zh) * | 2021-03-30 | 2021-06-29 | 北京字节跳动网络技术有限公司 | 页面显示方法、装置、设备和存储介质 |
CN114442880A (zh) * | 2022-01-19 | 2022-05-06 | 网易(杭州)网络有限公司 | 列表滚动方法、装置、电子设备及可读介质 |
CN114518832A (zh) * | 2022-02-15 | 2022-05-20 | 网易(杭州)网络有限公司 | 触控终端的显示控制方法、装置及电子设备 |
CN114637447A (zh) * | 2022-03-21 | 2022-06-17 | 北京有竹居网络技术有限公司 | 列表显示方法、装置、设备、存储介质及程序产品 |
CN114518832B (zh) * | 2022-02-15 | 2024-05-28 | 网易(杭州)网络有限公司 | 触控终端的显示控制方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506127A (zh) * | 2017-07-28 | 2017-12-22 | 北京五八信息技术有限公司 | 一种视图控件控制方法、设备及存储介质 |
CN111767002A (zh) * | 2019-05-20 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 页面展示方法、装置、设备及存储介质 |
-
2020
- 2020-11-18 CN CN202011292617.7A patent/CN112379958A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506127A (zh) * | 2017-07-28 | 2017-12-22 | 北京五八信息技术有限公司 | 一种视图控件控制方法、设备及存储介质 |
CN111767002A (zh) * | 2019-05-20 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 页面展示方法、装置、设备及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051016A (zh) * | 2021-03-30 | 2021-06-29 | 北京字节跳动网络技术有限公司 | 页面显示方法、装置、设备和存储介质 |
CN113051016B (zh) * | 2021-03-30 | 2022-06-21 | 北京字节跳动网络技术有限公司 | 页面显示方法、装置、设备和存储介质 |
CN114442880A (zh) * | 2022-01-19 | 2022-05-06 | 网易(杭州)网络有限公司 | 列表滚动方法、装置、电子设备及可读介质 |
CN114442880B (zh) * | 2022-01-19 | 2024-02-23 | 网易(杭州)网络有限公司 | 列表滚动方法、装置、电子设备及可读介质 |
CN114518832A (zh) * | 2022-02-15 | 2022-05-20 | 网易(杭州)网络有限公司 | 触控终端的显示控制方法、装置及电子设备 |
CN114518832B (zh) * | 2022-02-15 | 2024-05-28 | 网易(杭州)网络有限公司 | 触控终端的显示控制方法、装置及电子设备 |
CN114637447A (zh) * | 2022-03-21 | 2022-06-17 | 北京有竹居网络技术有限公司 | 列表显示方法、装置、设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112379958A (zh) | 一种应用程序页面的滑动控制方法及装置 | |
US20080174562A1 (en) | Mobile electronic apparatus with touch input device and display method using the same | |
CN109857303B (zh) | 交互控制方法及装置 | |
JP5371798B2 (ja) | 情報処理装置、その情報処理方法及びプログラム | |
JP5664147B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US9798400B2 (en) | Displaying device and non-transitory computer-readable recording medium storing instructions | |
US20180121076A1 (en) | Drawing processing method, drawing program, and drawing device | |
KR102205283B1 (ko) | 적어도 하나의 어플리케이션을 실행하는 전자 장치 및 그 제어 방법 | |
US20140289672A1 (en) | Graph display apparatus, graph display method and storage medium having stored thereon graph display program | |
KR20140133072A (ko) | 모바일 장치 및 이의 구동 방법 | |
CN106527903B (zh) | 触摸控制方法及装置 | |
JP2014052950A (ja) | 情報端末 | |
US9501206B2 (en) | Information processing apparatus | |
CN113885749A (zh) | 图标显示方法、装置及电子设备 | |
EP3371686B1 (en) | Improved method for selecting an element of a graphical user interface | |
CN106293312B (zh) | 终端可移动控件显示的方法和装置 | |
US9037958B2 (en) | Dynamic creation of user interface hot spots | |
CN108255558B (zh) | 书写软件调用方法、装置、设备及计算机可读存储介质 | |
CN108132721B (zh) | 生成拖动手势的方法、触控装置以及便携式电子设备 | |
KR101294458B1 (ko) | 모바일 디바이스에서의 텍스트 입력장치 및 그 방법 | |
WO2019024507A1 (zh) | 一种触摸控制方法、装置及终端 | |
JP2022049653A (ja) | 情報処理方法、システム、情報処理装置及びプログラム | |
CN114327717A (zh) | 用户界面处理方法、装置、设备及计算机可读存储介质 | |
KR102031104B1 (ko) | 웹 브라우저 표시 장치 및 웹 브라우저 표시 방법 | |
CN111813408A (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 |