项目功能扩展方法、装置、电子设备和计算机可读介质与流程

文档序号:21817640发布日期:2020-08-11 21:30阅读:102来源:国知局
项目功能扩展方法、装置、电子设备和计算机可读介质与流程

本申请实施例涉及计算机技术领域,具体涉及项目功能扩展方法、装置、电子设备和计算机可读介质。



背景技术:

随着计算机技术的发展,触屏设备应运而生。对于触屏设备,可使用触屏方式代替使用键盘、鼠标等方式进行人机交互,从而提高人机交互的便捷性。然而,目前的一些原生java项目,如swing项目等,通常仅支持键盘鼠标滚动操作,不支持触屏滑动操作,因而无法直接适用于如手机、平板电脑等触屏设备。

不支持触屏滑动操作的原生java项目,其事件的处理机制通常是从视图树的叶子节点向根节点单向传递,若使该原生java项目支持触屏滑动操作,现有的方式通常需要修改原生java项目的事件传递机制。在事件传递机制修改过程中,易造成与项目中现有的功能特性的冲突,导致对原有功能的兼容性价差。同时,修改事件传递机制的方式,开发量加大,导致开发效率较低。



技术实现要素:

本申请实施例提出了项目功能扩展方法、装置、电子设备和计算机可读介质,以在不改动事件传递的机制且兼容原有的功能的情况下,快捷方便地实现项目对触屏滑动操作的支持。

第一方面,本申请实施例提供了一种项目功能扩展方法,该方法包括:获取目标项目对应的视图树,遍历视图树中的第一节点和第二节点,第一节点为处理点击事件的节点,第二节点为处理触屏滑动事件的节点;从所遍历到的第二节点中,确定各第一节点的最近祖先第二节点;将存在最近祖先第二节点的各第一节点的点击事件监听操作移除,并将所移除的点击事件监听操作转移至相应的最近祖先第二节点,以使目标项目支持触屏滑动操作。

第二方面,本申请实施例提供了一种项目功能扩展装置,该装置包括:遍历单元,被配置成获取目标项目对应的视图树,遍历视图树中的第一节点和第二节点,第一节点为处理点击事件的节点,第二节点为处理触屏滑动事件的节点;确定单元,被配置成从所遍历到的第二节点中,确定各第一节点的最近祖先第二节点;更新单元,被配置成将存在最近祖先第二节点的各第一节点的点击事件监听操作移除,并将所移除的点击事件监听操作转移至相应的最近祖先第二节点,以使目标项目支持触屏滑动操作。

第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中所描述的方法。

第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中所描述的方法。

本申请实施例提供的项目功能扩展方法、装置、电子设备和计算机可读介质,通过获取目标项目(如不支持触屏滑动操作的原生java项目)对应的视图树,而后遍历该视图树中的第一节点和第二节点,之后从所遍历到的第二节点中,确定各第一节点的最近祖先第二节点,最后将存在最近祖先第二节点的各第一节点的点击事件监听操作移除,并将所移除的点击事件监听操作转移至相应的最近祖先第二节点,从而使目标项目支持该触屏滑动操作。由于第一节点为处理点击事件的节点,第二节点为处理触屏滑动事件的节点,且由于触屏滑动事件或者触屏滑动事件序列是由点击操作开始的,因而,将每一个第一节点的点击事件监听操作转由该第一节点的最近祖先第二节点执行,即可通过该最近祖先第二节点获取到点击事件,从而进行后续的触屏滑动操作。从而,可使改进后的目标项目支持该触屏滑动操作。由此,在不改动事件传递的机制且兼容原有的功能的情况下,快捷方便地实现了项目对触屏滑动操作的支持。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请的项目功能扩展方法的一个实施例的流程图;

图2是根据本申请的项目功能扩展方法的视图树的示意图;

图3是根据本申请的项目功能扩展方法的标记有第一节点和第二节点的视图树的示意图;

图4是根据本申请的项目功能扩展方法的转移点击事件监听操作的示意图;

图5是根据本申请的项目功能扩展方法的又一个实施例的流程图;

图6是根据本申请的项目功能扩展方法的第一二叉树模型的示意图;

图7是根据本申请的项目功能扩展方法的标记有第一节点和第二节点的第一二叉树模型的示意图;

图8是根据本申请的项目功能扩展方法的第二节点的层级树的示意图;

图9是根据本申请的项目功能扩展方法的第二二叉树模型的示意图;

图10是根据本申请的项目功能扩展方法的对应关系信息记录过程的示意图;

图11是根据本申请的项目功能扩展装置的一个实施例的结构示意图;

图12是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

请参考图1,其示出了根据本申请的项目功能扩展方法的一个实施例的流程100。该项目功能扩展方法,包括以下步骤:

步骤101,获取目标项目对应的视图树,遍历视图树中的第一节点和第二节点。

在本实施例中,项目功能扩展方法的执行主体可以是能够进行项目开发的开发设备,如台式计算机、笔记本电脑、服务器等。上述执行主体可以获取目标项目对应的视图树。

在本实施例中,目标项目可以是不支持触屏滑动操作的原生java项目。例如,目标项目可以是swing项目。swing项目即为使用swing开发的项目。实践中,swing是一个用于开发java应用程序用户界面的开发工具包。swing采用java代码来模拟各种控件(即使用java自带的作图函数绘制出各种控件)。swing包括多种用于实现图形用户界面器件,如文本框,按钮,分隔窗格和表等。通过swing创建图形用户界面程序的第一步是创建一个容器类以容纳其他组件,常见的窗口就是一种容器。容器本身也是一种组件,它的作用就是用来组织、管理和显示其他组件。

以目标项目为swing项目为例,可以通过如下步骤获取视图树:首先,记录目标项目中所创建的第一个容器,该容易可视为一个视图(view)。该视图(view)即为一个根视图(rootview)。而后,可通过递归的getchildviews()命令方式,获取此根视图下的所有子视图,得到视图树。此时,根视图即为视图树中的根节点,其余视图即为根节点下的子节点。

以目标项目为swing项目为例,还可以通过如下步骤获取视图树:首先,通过任意一个视图(可称为viewx),重复调用getparentview()命令,递归获取父视图,从而得到根视图。可通过递归的getchildviews()命令方式,获取此根视图下的所有子视图,得到视图树。此时,根视图即为视图树中的根节点,其余视图即为根节点下的子节点。

作为示例,图2为视图树的示意图。如图2所示,视图树共有13个节点,分别为v0至v13。v0为根节点,v1、v2、v3为v0的子节点,v4、v5为v1的子节点,v6、v7、v8为v3的子节点,v9、v10、v11为v6的子节点,v12、v13为v10的子节点。

在本实施例中,所示执行主体可以在获取视图树后,遍历视图树中的第一节点(可称为c)和第二节点(可称为t)。其中,第一节点为处理点击事件的节点,上述点击事件可以包括点击以及点击后的移动操作。第二节点为处理触屏滑动事件的节点。

在本实施例中,第一节点的判断依据可以是此节点注册了点击事件的监听器。所示执行主体可以依次检测每一节点是否注册了点击事件的监听器,若是,则可以将该节点确定为第一节点。

在本实施例中,第二节点的判断依据可以是此节点的组件类型是否在可滑动的组件集合中。其中,可滑动的组件集合可以在目标项目中自行定义。例如,可以把scrollview、pageview、gridview等组件定义为可滑动组件集合。

实践中,在遍历出视图树中的第一节点和第二节点后,可以在视图树中将第一节点和第二节点分别进行标记。作为示例,图3是标记有第一节点和第二节点的视图树的示意图。如图3所示,c1、c2、c3、c4和c5分别为第一节点,t1、t2、t3分别为第二节点。

需要指出的是,上述执行主体还可以采用其他方式遍历第一节点和第二节点。例如,将视图树转换为其他形式,如转换成二叉树模型,从而在该二叉树模型中遍历第一节点和第二节点。本申请实施例对此不作限定。

步骤102,从所遍历到的第二节点中,确定各第一节点的最近祖先第二节点。

在本实施例中,所示执行主体可以从所遍历到的第二节点中,逐一地确定各第一节点的最近祖先第二节点。实践中,对于某一第一节点,该第一节点的最近组件第二节点即为该第一节点的各个祖先节点中最近的第二节点。

具体地,对于每一个第一节点,可以按照如下步骤确定其最近祖先第二节点:首先,确定该第一节点的父节点是否为第二节点。若该第一节点的父节点是第二节点,则该第一节点的父节点即为该第一节点的最近祖先第二节点。若该第一节点的父节点不是第二节点,则可检测该父节点的父节点(可称为待判断节点)是否为第二节点。若该待判断节点为第二节点,则该待判断节点即为该第一节点的最近祖先第二节点。若该待判断节点不为第二节点,则可将该待判断节点的父节点作为新的待判断节点,并继续执行判断其是否为第二节点的操作。以此类推。

以图3为例,第一节点用c表示,第二节点用t表示。由此,第一节点c1的最近祖先第二节点为t1,第一节点c2不存在最近祖先第二节点,可不再考虑该节点,第一节点c3、c4、c5的最近祖先父第二节点为t3。

步骤103,将存在最近祖先第二节点的各第一节点的点击事件监听操作移除,并将所移除的点击事件监听操作转移至相应的最近祖先第二节点,以使上述目标项目支持触屏滑动操作。

在本实施例中,由于第一节点为处理点击事件的节点。因而,原始的第一节点需要执行点击事件监听操作。此处,对于存在最近祖先第二节点的每一个第一节点,上述执行主体可以将该第一节点的点击事件监听操作移除,并将所移除的点击事件监听操作转移至该第一节点的最近祖先第二节点,从而使最近祖先第二节点获取到点击事件。

由于触屏滑动事件或者触屏滑动事件序列是由点击操作开始的。在原始方式中,第一节点由于注册了点击事件的监听,因而点击事件在第一节点被消费,无法传递给第二节点。由于第二节点无法得知此点击事件,因而无法完成后续的触屏滑动功能。在本实施例中,将第一节点所记录的点击事件传递给最近祖先第二节点,即可使最近祖先第二节点获取到点击事件,从而可结合后续的一系列移动事件,来实现触屏滑动功能。

作为示例,图4是转移点击事件监听操作的示意图。如图4所示,第一节点用c表示,第二节点用t表示。由于第一节点c1的最近祖先第二节点为t1,因而,可以将c1的点击事件监听操作转移至t1(可由c1指向t1的虚线表示),从而可由t1获取并处理点击事件。如果后续动作为触屏滑动,则t1可直接消费掉该触屏滑动事件,进行触屏滑动操作处理。需要说明的是,如果后续动作不是触屏滑动,则可由t1回调c1的操作。

同理,由于第一节点c3、c4、c5的最近祖先父第二节点为t3,因而,可以将c3、c4、c5的点击事件监听操作转移至t3(可由c3、c4、c5分别指向t3的虚线表示),从而可由t3获取并处理点击事件。如果后续动作为触屏滑动,则t3可直接消费掉该触屏滑动事件,进行触屏滑动操作处理。

在本实施例的一些可选的实现方式中,上述执行主体还可以对有父子关系的第二节点的事件进行分发处理,如将具有父子关系的第二节点中的子节点所需处理的事件转由其父节点处理,从而确保滑动组件嵌套,有助于程序正确运行。

在本实施例的一些可选的实现方式中,上述执行主体还可以通过接口为第二节点注入特定功能的处理函数,来支持或扩展触屏滑动中的特定义操作,如手势操作等。

本申请的上述实施例提供的方法,通过获取目标项目(如不支持触屏滑动操作的原生java项目)对应的视图树,而后遍历该视图树中的第一节点和第二节点,之后从所遍历到的第二节点中,确定各第一节点的最近祖先第二节点,最后将存在最近祖先第二节点的各第一节点的点击事件监听操作移除,并将所移除的点击事件监听操作转移至相应的最近祖先第二节点,从而使目标项目支持该触屏滑动操作。由于第一节点为处理点击事件的节点,第二节点为处理触屏滑动事件的节点,且由于触屏滑动事件或者触屏滑动事件序列是由点击操作开始的,因而,将每一个第一节点的点击事件监听操作转由该第一节点的最近祖先第二节点执行,即可使通过最近祖先第二节点获取到点击事件,从而进行后续的触屏滑动操作。从而,可使改进后的目标项目支持该触屏滑动操作。由此,在不改动事件传递的机制且兼容原有的功能的情况下,快捷方便地实现了项目对触屏滑动操作的支持。

进一步参考图5,其示出了项目功能扩展方法的又一个实施例的流程500。该项目功能扩展方法的流程500,包括以下步骤:

步骤501,获取目标项目对应的视图树。

在本实施例中,目标项目为不支持触屏滑动操作的原生java项目。例如swing项目。以目标项目为swing项目为例,项目功能扩展方法的执行主体可以通过如下步骤获取视图树:首先,记录目标项目中所创建的第一个容器,该容易可视为一个视图(view)。该视图(view)即为一个根视图(rootview)。而后,可通过递归的getchildviews()命令方式,获取此根视图下的所有子视图,得到视图树。此时,根视图即为视图树中的根节点,其余视图即为根节点下的子节点。

需要说明的是,步骤501可参见图1对应实施例的步骤101,视图树的示意图可参见图2,本实施例对此不再赘述。

步骤502,将视图树转换为第一二叉树模型。

在本实施例中,上述执行主体可以将视图树转换为二叉树模型,并将该二叉树模型称为第一二叉树模型。上述二叉树模型即为二叉树结构的模型。

实践中,二叉树是一种每个节点最多有两个子树的树结构。作为示例,图6为第一二叉树模型的示意图。图6所示的第一二叉树模型可由对图2所示的视图树进行二叉树转换后得到。对于第一二叉树模型中的每一个节点(可称为目标节点),其左孩子节点为视图树中该目标节点的子节点,其有孩子接待你为视图树中该目标节点的兄弟节点。

步骤503,遍历第一二叉树模型中的第一节点和第二节点。

在本实施例中,上述执行主体可以遍历第一二叉树模型中的第一节点和第二节点。实践中,第一节点的判断依据可以是此节点注册了点击事件的监听器。第二节点的判断依据可以是此节点的组件类型是否在可滑动的组件集合中。其中,可滑动的组件集合可以在目标项目中自行定义。例如,可以把scrollview、pageview、gridview等组件定义为可滑动组件集合。

在本实施例中,在遍历出第一二叉树模型中的第一节点和第二节点后,可以在第一二叉树模型中将第一节点和第二节点分别进行标记。作为示例,图7是在图6的基础上得到的标记有第一节点和第二节点的第一二叉树模型的示意图。如图7所示,c1、c2、c3、c4和c5分别为第一节点,t1、t2、t3分别为第二节点。

需要说明的是,c2虽然是第一节点,但其父节点及各个祖先节点均不是第二节点,因此,可认为c2不在滑动容器内,后续步骤中无需对此节点执行操作。

步骤504,基于第一二叉树模型中的第二节点,构建第二节点的层级树。

在本实施例中,上述执行主体可以基于第一二叉树模型中的第二节点,构建第二节点的层级树,从而实现触屏滑动组件的抽取。

作为示例,图8是在图7所示的第一二叉树模型的基础上所得到的第二节点的层级树的示意图。如图8所示,层级树可包含根节点和全部的第二节点。

步骤505,将层级树转换为第二二叉树模型。

在本实施例中,上述执行主体可以采用与步骤502类似的方式,将层级树转换为第二二叉树模型。作为示例,图9是在图8的基础上得到的第二二叉树模型。

步骤506,遍历第一二叉树模型中的各第一节点的最近祖先第二节点,得到各第一节点与对应的最新祖先第二节点的对应关系信息。

在本实施例中,上述执行主体可以遍历第一二叉树模型中的各第一节点的最近祖先第二节点,得到各第一节点与对应的最新祖先第二节点的对应关系信息。需要说明的是,遍历各第一节点的最近祖先第二节点的具体操作方式可参见图1对应实施例的步骤103,此处不再赘述。

以图7所示的第一二叉树模型为例,第一节点c1的最近祖先第二节点为t1,第一节点c2不存在最近祖先第二节点,可不再考虑该节点,第一节点c3、c4、c5的最近祖先父第二节点为t3。

步骤507,遍历第二二叉树模型中的第二节点,对于所遍历的每一个第二节点,在该第二节点中,记录涉及到该第二节点的对应关系信息。

在本实施例中,上述执行主体可以遍历第二二叉树模型中的第二节点。对于所遍历的每一个第二节点,在该第二节点中,记录涉及到该第二节点的对应关系信息。需要说明的是,若某一第二节点无与其对应的第一节点,则不进行信息记录。

实践中,第二二叉树模型中的每一个第二节点可以有具有一个对应的存储空间,用于存储涉及该第二节点的对应关系信息。因而,在第二节点中记录对应关系信息,即为在第二节点对应的存储空间中记录对应关系信息。

作为示例,图10是对应关系信息记录过程的示意图。如图10所示,方框表示第二节点对应的存储空间。由于第二节点t1为第一节点c1的最近祖先第二节点,因而第二节点t1与第一节点c1具有对应关系,因而,第二节点t1对应的存储空间中记录的对应关系信息涉及第一节点c1。同理,第二节点t3对应的存储空间中记录的对应关系信息涉及第一节点c3、c4、c5。

步骤508,遍历第二二叉树模型中的第二节点,对于所遍历到的每一个第二节点,基于该第二节点中所记录的对应关系信息,确定与该第二节点具有对应关系的目标第一节点,移除目标第一节点的点击事件监听操作,并将所移除的点击事件监听操作添加至该第二节点。

在本实施例中,上述执行主体可以遍历第二二叉树模型中的第二节点。对于所遍历到的每一个第二节点,可以执行如下操作:

首先,基于该第二节点中所记录的对应关系信息,确定与该第二节点具有对应关系的目标第一节点。

而后,移除目标第一节点的点击事件监听操作,并将所移除的点击事件监听操作添加至该第二节点。

由于触屏滑动事件或者触屏滑动事件序列是由点击操作开始的。在原始方式中,第一节点由于注册了点击事件的监听,因而点击事件在第一节点被消费,无法传递给第二节点。由于第二节点无法得知此点击事件,因而无法完成后续的触屏滑动功能。在本实施例中,将第一节点所记录的点击事件传递给最近祖先第二节点,即可使最近祖先第二节点获取到点击事件,从而可结合后续的一系列移动事件,来实现触屏滑动功能。

需要说明的是,步骤507和步骤508的遍历操作可以合并,即,可以遍历第二二叉树模型中的第二节点,对于所遍历的每一个第二节点,在该第二节点中,记录涉及到该第二节点的对应关系信息,基于该第二节点中所记录的对应关系信息,确定与该第二节点具有对应关系的目标第一节点,移除目标第一节点的点击事件监听操作,并将所移除的点击事件监听操作添加至该第二节点。

步骤509,按照由叶子节点到根节点的顺序,依次遍历第二二叉树模型中具有父子关系的各组第二节点,对于所依次遍历到的每一组第二节点,将该组第二节点中的子节点记录的点击事件转移至该组第二节点中的父节点。

在本实施例中,上述执行主体可以按照由叶子节点到根节点的顺序,依次遍历第二二叉树模型中具有父子关系的各组第二节点。对于所依次遍历到的每一组第二节点,可以将该组第二节点中的子节点记录的点击事件转移至该组第二节点中的父节点。

以图9所示的第二二叉树模型为例,第二节点t2为第二节点t3的父节点,因而,可以将第二节点t3中所需处理的事件分发给t2处理。从而实现将具有父子关系的第二节点中的子节点所需处理的事件转由其父节点处理,确保滑动组件嵌套,有助于程序正确运行。

在本实施例的一些可选的实现方式中,在将从各第一节点中所移除的点击事件监听操作转移至相应的最近祖先第二节点之后,上述执行主体可以遍历第二二叉树模型中第二节点,对所遍历到的一个或多个第二节点添加预设函数。其中,预设函数用于支持支持触屏滑动中的特定义操作,特定义操作包括一种或多种手势操作。从而,可以进一步扩展触屏滑动过程中的自定义功能。

从图5中可以看出,与图1对应的实施例相比,本实施例中的项目功能扩展方法的流程500涉及了将视图树转换为第一二叉树模型、基于第一二叉树模型构建第二节点的层级树、将层级树转换为第二二叉树模型等步骤。由此,可以将第二二叉树模型作为触屏滑动模型,通过该触屏滑动模型对触屏事件进行处理,实现触屏滑动功能的实现。由此,在不改动事件传递的机制且兼容原有的功能的情况下,快捷方便地实现了项目对触屏滑动操作的支持。

进一步参考图11,作为对上述各图所示方法的实现,本申请提供了一种项目功能扩展装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图11所示,本实施例所述的项目功能扩展装置1100包括:遍历单元1101,被配置成获取目标项目对应的视图树,遍历上述视图树中的第一节点和第二节点,上述第一节点为处理点击事件的节点,上述第二节点为处理触屏滑动事件的节点;确定单元1102,被配置成从所遍历到的第二节点中,确定各第一节点的最近祖先第二节点;更新单元1103,被配置成将存在最近祖先第二节点的各第一节点的点击事件监听操作移除,并将所移除的点击事件监听操作转移至相应的最近祖先第二节点,以使上述目标项目支持触屏滑动操作。

在本实施例的一些可选的实现方式中,上述遍历单元1101,进一步被配置成:将上述视图树转换为第一二叉树模型;遍历上述第一二叉树模型中的第一节点和第二节点。

在本实施例的一些可选的实现方式中,上述确定单元1102,进一步被配置成:基于上述第一二叉树模型中的第二节点,构建第二节点的层级树;将上述层级树转换为第二二叉树模型;遍历上述第一二叉树模型中的各第一节点的最近祖先第二节点,得到各第一节点与对应的最新祖先第二节点的对应关系信息;遍历上述第二二叉树模型中的第二节点,对于所遍历的每一个第二节点,在该第二节点中,记录涉及到该第二节点的对应关系信息。

在本实施例的一些可选的实现方式中,上述更新单元1103,进一步被配置成:遍历上述第二二叉树模型中的第二节点,对于所遍历到的每一个第二节点,基于该第二节点中所记录的对应关系信息,确定与该第二节点具有对应关系的目标第一节点,移除上述目标第一节点的点击事件监听操作,并将所移除的点击事件监听操作添加至该第二节点。

在本实施例的一些可选的实现方式中,上述装置还包括:转移单元,被配置成:按照由叶子节点到根节点的顺序,依次遍历上述第二二叉树模型中具有父子关系的各组第二节点,对于所依次遍历到的每一组第二节点,将该组第二节点中的子节点记录的点击事件转移至该组第二节点中的父节点。

在本实施例的一些可选的实现方式中,上述装置还包括:添加单元,被配置成:遍历上述第二二叉树模型中第二节点,对所遍历到的一个或多个第二节点添加预设函数,预设函数用于支持支持触屏滑动中的特定义操作,上述特定义操作包括一种或多种手势操作。

在本实施例的一些可选的实现方式中,上述目标项目为swing项目。

本申请的上述实施例提供的装置,通过获取目标项目(如不支持触屏滑动操作的原生java项目)对应的视图树,而后遍历该视图树中的第一节点和第二节点,之后从所遍历到的第二节点中,确定各第一节点的最近祖先第二节点,最后将存在最近祖先第二节点的各第一节点的点击事件监听操作移除,并将所移除的点击事件监听操作转移至相应的最近祖先第二节点,从而使目标项目支持该触屏滑动操作。由于第一节点为处理点击事件的节点,第二节点为处理触屏滑动事件的节点,且由于触屏滑动事件或者触屏滑动事件序列是由点击操作开始的,因而,将每一个第一节点的点击事件监听操作转由该第一节点的最近祖先第二节点执行,即可使通过最近祖先第二节点获取到点击事件,从而进行后续的触屏滑动操作。从而,可使改进后的目标项目支持该触屏滑动操作。由此,在不改动事件传递的机制且兼容原有的功能的情况下,快捷方便地实现了项目对触屏滑动操作的支持。

下面参考图12,其示出了适于用来实现本申请实施例的电子设备的计算机系统1200的结构示意图。图12示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图12所示,计算机系统1200包括中央处理单元(cpu)1201,其可以根据存储在只读存储器(rom)1202中的程序或者从存储部分1208加载到随机访问存储器(ram)1203中的程序而执行各种适当的动作和处理。在ram1203中,还存储有系统1200操作所需的各种程序和数据。cpu1201、rom1202以及ram1203通过总线1204彼此相连。输入/输出(i/o)接口1205也连接至总线1204。

以下部件连接至i/o接口1205:包括键盘、鼠标等的输入部分1206;包括诸如液晶显示器(lcd)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至i/o接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(cpu)1201执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:获取目标项目对应的视图树,目标项目为不支持触屏滑动操作的原生java项目;遍历该视图树中的第一节点和第二节点,第一节点为处理点击事件的节点,第二节点为处理触屏滑动事件的节点;从所遍历到的第二节点中,确定各第一节点的最近祖先第二节点;将存在最近祖先第二节点的各第一节点的点击事件监听操作移除,并将所移除的点击事件监听操作转移至相应的最近祖先第二节点,以使所述目标项目支持触屏滑动操作。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1