滚动处理方法、装置及电子设备
技术领域
本说明书涉及计算机技术领域,尤其涉及滚动处理方法、装置及电子设备。
背景技术
当页面内容较多,由于电子设备的屏幕大小限制,应用程序通常会利用滚动控件实现页面内容的展示。滚动控件是可以滚动展示内容的组件,可以在页面内容超出屏幕上的可见区域时,通过滚动调整屏幕上的可见区域,使得可见区域能够展示页面上不同位置的页面内容。
页面展示场景中,可能会涉及到两个相邻页面,并对应设置有滚动控件的情况。例如,用于展示新闻咨询的页面,可能相邻设置有正文内容页面,以及用户评论页面,两个页面对应设置有相邻的两个滚动控件,假设两个滚动控件在滚动时是独立的,用户浏览正文内容页面时,需要拖拽该页面的滚动控件,当拖拽至正文内容页面的底部,用户想要拖拽用户评论页面时,需要拖拽该页面的滚动控件,因此需要提供更为灵活、平滑的滚动处理方案。
发明内容
为克服相关技术中存在的问题,本说明书提供了滚动处理方法、装置及电子设备。
一种滚动处理方法,针对相邻设置的第一滚动控件和第二滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域包括所述第一滚动控件的可滚动区域和第二滚动控件的可滚动区域;
所述方法包括:
通过所述辅助滚动控件获取用户触发的滚动行为;
根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
可选的,所述第一滚动控件对应有第一页面内容,第二滚动控件对应有第二页面内容,所述方法还包括:
根据所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置,以及所述第一页面内容和第二页面内容,确定设备屏幕上的页面可显示区域当前所显示的页面内容。
可选的,所述本次滚动偏移量包括本次滚动相对于上一次滚动的偏移量,或者是本次滚动相对于对应的可滚动区域的原点的偏移量。
可选的,所述辅助滚动控件的初始滚动方向为从所述第一滚动控件的可滚动区域向所述第二滚动控件的可滚动区域;
所述根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置,包括:
若所述辅助滚动控件在所述第一滚动控件的可滚动区域内,确定所述第一滚动控件的本次滚动偏移量为所述辅助滚动控件的本次滚动偏移量,所述第二滚动控件的本次滚动偏移量为零;
若所述辅助滚动控件的滚动块滚动至在所述第一滚动控件的可滚动区域与所述第二滚动控件的可滚动区域之间,第一滚动控件的偏移量为第一滚动控件的可滚动区域的高与所述辅助滚动控件的高的差值,所述第二滚动控件的偏移量为零;
若所述辅助滚动控件在所述第二滚动控件的可滚动区域内,确定所述第一滚动控件的偏移量为第一滚动控件的可滚动区域的高与所述辅助滚动控件的高的差值,所述第二滚动控件的本次滚动偏移量为所述辅助滚动控件的本次滚动偏移量与所述第一滚动控件的可滚动区域的高的差值。
一种滚动处理方法,针对相邻设置的两个或以上的原始滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域覆盖所述两个或以上的原始滚动控件的可滚动区域;
所述方法包括:
通过所述辅助滚动控件获取用户触发的滚动行为;
根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
可选的,所述原始滚动控件对应有页面内容,所述方法还包括:
根据各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置,确定设备屏幕上的页面可显示区域当前所显示的页面内容。
可选的,所述本次滚动偏移量包括本次滚动相对于上一次滚动的偏移量,或者是本次滚动相对于对应的可滚动区域的原点的偏移量。
一种滚动处理装置,针对相邻设置的第一滚动控件和第二滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域包括所述第一滚动控件的可滚动区域和第二滚动控件的可滚动区域;
所述装置包括:
获取模块,用于:通过所述辅助滚动控件获取用户触发的滚动行为;
偏移量确定模块,用于:根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
位置确定模块,用于:根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
可选的,所述第一滚动控件对应有第一页面内容,第二滚动控件对应有第二页面内容,所述装置还包括页面内容确定模块,用于:
根据所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置,以及所述第一页面内容和第二页面内容,确定设备屏幕上的页面可显示区域当前所显示的页面内容。
可选的,所述本次滚动偏移量包括本次滚动相对于上一次滚动的偏移量,或者是本次滚动相对于对应的可滚动区域的原点的偏移量。
可选的,所述辅助滚动控件的初始滚动方向为从所述第一滚动控件的可滚动区域向所述第二滚动控件的可滚动区域;
所述位置确定模块,还用于:
若所述辅助滚动控件在所述第一滚动控件的可滚动区域内,确定所述第一滚动控件的本次滚动偏移量为所述辅助滚动控件的本次滚动偏移量,所述第二滚动控件的本次滚动偏移量为零;
若所述辅助滚动控件在所述第一滚动控件的可滚动区域与所述第二滚动控件的可滚动区域之间,第一滚动控件的偏移量为第一滚动控件的可滚动区域的高与所述辅助滚动控件的高的差值,所述第二滚动控件的偏移量为零;
若所述辅助滚动控件在所述第二滚动控件的可滚动区域内,确定所述第一滚动控件的偏移量为第一滚动控件的可滚动区域的高与所述辅助滚动控件的高的差值,所述第二滚动控件的本次滚动偏移量为所述辅助滚动控件的本次滚动偏移量与所述第一滚动控件的可滚动区域的高的差值。
一种滚动处理装置,针对相邻设置的两个或以上的原始滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域覆盖所述两个或以上的原始滚动控件的可滚动区域;
所述装置包括:
获取模块,用于:通过所述辅助滚动控件获取用户触发的滚动行为;
偏移量确定模块,用于:根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
位置确定模块,用于:根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
所述原始滚动控件对应有页面内容,所述装置还包括页面内容确定模块,用于:
根据各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置,确定设备屏幕上的页面可显示区域当前所显示的页面内容。
可选的,所述本次滚动偏移量包括本次滚动相对于上一次滚动的偏移量,或者是本次滚动相对于对应的可滚动区域的原点的偏移量。
一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
针对相邻设置的第一滚动控件和第二滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域包括所述第一滚动控件的可滚动区域和第二滚动控件的可滚动区域;
通过所述辅助滚动控件获取用户触发的滚动行为;
根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
针对相邻设置的两个或以上的原始滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域覆盖所述两个或以上的原始滚动控件的可滚动区域;
通过所述辅助滚动控件获取用户触发的滚动行为;
根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书中,针对相邻设置的第一滚动控件和第二滚动控件,提供有一辅助滚动控件,所述第一滚动控件的可滚动区域和第二滚动控件的可滚动区域构成所述辅助滚动控件的可滚动区域,由辅助滚动控件接管在页面上的滚动行为,根据辅助滚动控件的滚动偏移情况,确定原有的第一滚动控件和第二滚动控件的滚动偏移和位置,从而使得两个页面情况下,第一滚动控件和第二滚动控件的滚动可以如同一个页面下的滚动一样平滑,并且不需要额外的内存开销。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本申请的原理。
图1A是本说明书根据一示例性实施例示出的一种电子设备的屏幕示意图。
图1B是本说明书根据一示例性实施例示出的另一种电子设备的屏幕示意图。
图2A是本说明书根据一示例性实施例示出的一种滚动处理方法的流程图。
图2B是本说明书根据一示例性实施例示出的一种滚动控件的示意图。
图2C是本说明书根据一示例性实施例示出的另一种滚动控件的示意图。
图2D是本说明书根据一示例性实施例示出的另一种滚动控件的示意图。
图3是本说明书根据一示例性实施例示出的一种滚动处理方法的流程图。
图4是本说明书滚动处理装置所在计算机设备的一种硬件结构图。
图5是本说明书根据一示例性实施例示出的一种滚动处理装置的框图。
图6是本说明书根据一示例性实施例示出的一种滚动处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1A和1B所示,分别是本说明书根据一示例性实施例示出的一种电子设备的屏幕示意图,图1A和1B中的电子设备以具有触摸功能的智能手机为例进行说明。图1A和1B中涉及页面1和页面2两个相邻设置的页面,页面1和页面2用于展示不同的内容,并且两个页面的页面展示需求可能也不相同,因此页面1和页面2可能采用不同的视图进行实现。例如常见的资讯场景,通常包括有内容正文页面和评论列表页面,两个页面使用webview呈现资讯内容,采用tableview呈现评论。由于采用不同视图实现,则每个视图分别设置一滚动控件,以控制对应页面的内容在电子设备屏幕上的可显示区域(以下简称可见区域)进行展示。
针对滚动控件,图中可见区域内是供用户触发滚动行为的区域,也即是滚动控件的大小与可见区域相同。而滚动控件的可滚动区域也即是该页面的整个区域,也即是图1A中指代页面的方框所构成的区域。用户可以在触摸屏上上下滑动,从图1A所示的位置,将页面内容滚动至图1B所示的位置。当两个页面相邻设置,从一个页面滚动至另一页面时,为了提供平滑的滚动处理方案,本实施例中,针对相邻设置的第一滚动控件和第二滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域包括所述第一滚动控件的可滚动区域和第二滚动控件的可滚动区域。
如图2A所示,是本说明书根据一示例性实施例示出的滚动处理方法,该方法包括:
在步骤202中,通过所述辅助滚动控件获取用户触发的滚动行为。
在步骤204中,根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量。
在步骤206中,根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
本实施例中两个页面相邻设置,可以是上下相邻设置,也可以是左右相邻设置。以两个上下滚动的列表为例。假设上下两个滚动组件分别为topScroll,bottomScroll。本实施例构建一个辅助滚动控件assistScroll来处理滚动。具体的,可以是禁止topScroll和bottomScroll的滚动事件,由辅助滚动控件来获取用户触发的滚动行为。
如图2B所示,是本说明书根据一示例性实施例示出的一种滚动控件的示意图。图2B中包括上述的topScroll、bottomScroll和assistScroll。其中,
topScroll.contenSize表示topScroll的可滚动区域;
topScroll.contenSize.height表示topScroll.contenSize的高;
bottomScroll.contenSize表示bottomScroll的可滚动区域;
bottomScroll.contenSize.height表示bottomScroll.contenSize的高。
左侧的assistScroll的visualSize也即是页面的内容在电子设备屏幕上的可见区域,该可见区域的大小与topScroll、bottomScroll和assistScroll的大小都相同。assistScroll.contenSize表示assistScroll的可滚动区域,该可滚动区域的大小是topScroll.contenSize和bottomScroll.contenSize的和值。
本实施例中由辅助滚动控件来获取用户触发的滚动行为,可以理解,辅助滚动控件的初始值表示辅助滚动控件处于其可滚动区域的原点(本实施例中采用上下相邻的滚动控件为例,可滚动区域的原点可以是最顶端;对于左右相邻设置的滚动控件,可滚动区域的原点可以是最左端),也即是辅助滚动控件未移动,其滚动偏移量为0。本实施例中,assistScroll.contentOffset.y表示assistScroll的本次滚动偏移量。当用户开始触发滚动行为,在用户的滚动行为的指示下,辅助滚动控件开始移动。本实施例的本次滚动偏移量,可以是相对于上一次滚动的偏移量,也可以是相对于可滚动区域的原点的偏移量。实际应用中,可以根据需要而灵活配置。
在页面首次开启,topScroll、bottomScroll和assistScroll都处于其可滚动区域的原点,三个滚动控件都暂未移动。当用户开始触发滚动行为,辅助滚动控件用于获取用户的滚动行为,在用户的滚动行为的指示下,辅助滚动控件开始移动。如图2B所示,可见区域还处于topScroll的可滚动区域内,设备屏幕上的可见区域暂未展示至topScroll的可滚动区域的底部,可以理解,bottomScroll对应的页面2的内容也暂未展示。由图2B可知,topScroll的本次滚动偏移量与assistScroll的本次滚动偏移量相同,而bottomScroll暂未进入可见区域,可以保持原有的初始值。
如图2C所示,当assistScroll继续往下滚动,topScroll的可滚动区域的底部开始进入可见区域,而bottomScroll的可滚动区域也开始进入可见区域,此时,需要结合topScroll和bottomScroll的可滚动区域的高,以及此时的本次滚动偏移量,进而确定topScroll的本次滚动偏移量和bottomScroll的本次滚动偏移量。可以理解,当assistScroll滚动至bottomScroll的可滚动区域内,topScroll已经移动至底部,无法继续往下滚动,若以topScroll的可滚动区域的原点为对比,topScroll的本次滚动偏移量将达到最大值。
如图2D所示,当assistScroll继续往下滚动,topScroll的整个可滚动区域都已不在可见区域内,而bottomScroll的可滚动区域都在可见区域内,因此,topScroll的本次滚动偏移量为零,而bottomScroll进入可见区域,可以根据assistScroll的本次滚动偏移量确定bottomScroll的本次滚动偏移量。
因此,基于上述分析,在确定了所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量,进而可以确定所述第一滚动控件和第二滚动控件在对应的可滚动区域上的当前位置,从而实现由辅助滚动控件接管在页面上的滚动行为,根据辅助滚动控件的滚动偏移情况,确定原有的第一滚动控件和第二滚动控件的滚动偏移和位置,从而使得两个页面情况下,第一滚动控件和第二滚动控件的滚动可以如同一个页面下的滚动一样平滑,并且不需要额外的内存开销。
实际应用中,由于assistScroll的可滚动区域包括topScroll和bottomScroll的可滚动区域,若topScroll和bottomScroll的可滚动区域发生变化,可以通过KVO(objc的key-value观察机制,被观察的对象的属性发生变化时,会通知给观察者,观察者收到通知后可以做一些处理逻辑)对topScroll和bottomScroll的contentSize变化进行监听,当其可滚动区域发生变化(如网页内容发生变化,导致高度变化)时,可以更新assistScroll的可滚动区域。
对于如何快速通过辅助滚动控件的滚动情况确定第一滚动控件和第二滚动控件的滚动情况,本说明书还提供如下一种实施方式,在该实施方式中,所述辅助滚动控件的初始滚动方向为从所述第一滚动控件的可滚动区域向所述第二滚动控件的可滚动区域。也即是,对于上下相邻设置的两个滚动控件,第一滚动控件在第二滚动控件之上,对于左右相邻设置的两个滚动控件,第一滚动控件在第二滚动控件左侧。
在根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,计算所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量时,结合前述图2B至图2D进行说明。
以图2B所示图例,若所述辅助滚动控件在所述第一滚动控件的可滚动区域内,确定所述第一滚动控件的本次滚动偏移量为所述辅助滚动控件的本次滚动偏移量,所述第二滚动控件的本次滚动偏移量为零。
具体的,当所述辅助滚动控件在所述第一滚动控件的可滚动区域内,也即是可见区域在bottomScroll之上,即:
assistScroll.contentOffset.y<topScroll.contentSize.height-visualSize.height。
上述式子表示辅助滚动控件的本次滚动偏移量小于topScroll的可滚动区域的高与可见区域的高的差值,也可以理解为topScroll还没有滚动至其可滚动区域的底部,topScroll完全占据可见区域,topScroll的本次滚动偏移量等同assistScroll的本次滚动偏移量,bottomScroll紧邻topScroll下方。
在通过辅助滚动控件的滚动情况确定第一滚动控件和第二滚动控件的滚动情况时,可以采用如下确定方式:
topScroll.contentOffset.y=assistScroll.contentOffset.y;表示topScroll的本次滚动偏移量等同于assistScroll的本次滚动偏移量。
bottomScroll.contentOffset.y=0;表示topScroll的本次滚动偏移量为零。
也即表示确定可见区域移动到了哪个位置。
由于topScroll在bottomScroll之上,在当前滚动状态下,topScroll完全占据可见区域,topScroll与可见区域重叠,topScroll相对于可见区域距离,即origin.y为零,即topScroll.origin.y=0。
而bottomScroll相对于可见区域则越来越接近,bottomScroll.origin.y=
assistScroll.contentSize.height-assistScroll.contentOffset.y;表示bottomScroll与可见区域的距离为辅助滚动控件的可滚动区域的高减去辅助滚动控件的本次滚动偏移值。
以图2C所示图例,若所述辅助滚动控件的滚动块滚动至在所述第一滚动控件的可滚动区域与所述第二滚动控件的可滚动区域之间,第一滚动控件的偏移量为第一滚动控件的可滚动区域的高与所述辅助滚动控件的高的差值,所述第二滚动控件的偏移量为零。
具体的,当ssistScroll继续往下滚动,topScroll和bottomScroll边界开始出现在可见区域,此时,topScroll有一部分在可见区域之上,一部分在可见区域之内,bottomScroll有一部分在可见区域之内,一部分在可见区域之外。即:
assistScroll.contentOffset.y>topScroll.contentSize.height-visualSize.height且assistScroll.contentOffset.y<topScroll.contentSize.height。
上述式子中topScroll.contentSize.height-visualSize.height表示了topScroll所能偏移的最大值,topScroll已经到达底部,而assistScroll已经越过此最大值,但仍在bottomScroll之上,bottomScroll仍未滚动。基于此,
topScroll.contentOffset.y=topScroll.contentSize.height-visualSize.height;
bottomScroll.contentOffset.y=0。
基于上述偏移量,topScroll相对于可见区域的位置topScroll.origin.y=
topScroll.contentSize.height-visualSize.height-assistScroll.contentOffset.y;
其中,topScroll.contentSize.height-visualSize.height也即是表示topScroll的本次偏移滚动量。
bottomScroll的位置bottomScroll.origin.y=
topScroll.contentSize.height-assistScroll.contentOffset.y
以图2D所示图例,若所述辅助滚动控件在所述第二滚动控件的可滚动区域内,确定所述第一滚动控件的偏移量为第一滚动控件的可滚动区域的高与所述辅助滚动控件的高的差值,所述第二滚动控件的本次滚动偏移量为所述辅助滚动控件的本次滚动偏移量与所述第一滚动控件的可滚动区域的高的差值。
具体的,当辅助滚动控件继续往下滚动,第一滚动控件的可滚动区域完全在可见区域之上,而可见区域完成在第二滚动控件的可滚动区域之内,即:
assistScroll.contentOffset.y>topScroll.contentSize.height
表示辅助滚动控件的本次滚动偏移量超过了第一滚动控件的可滚动区域的高。基于此,
topScroll.contentOffset.y=topScroll.contentSize.height-visualSize.height;
表示第一滚动控件已经滚动到其可滚动区域的底部。
而bottomScroll.contentOffset.y=
assistScroll.contentOffset.y-topScroll.contentSize.height;
表示第二滚动控件的本次滚动偏移量为辅助滚动控件的本次滚动偏移量减去第一滚动控件的可滚动区域的高。
基于上述偏移量,topScroll相对于可见区域的位置topScroll.origin.y仍然是:
topScroll.contentSize.height-visualSize.height-assistScroll.contentOffset.y。
而bottomScroll相对于可见区域的位置bottomScroll.origin.y=0,表示当前bottomScroll完全占据可见区域。
通过上述方式,可以通过辅助滚动控件的滚动情况确定第一滚动控件和第二滚动控件的滚动情况。由前述分析可知,所述第一滚动控件对应有第一页面内容,第二滚动控件对应有第二页面内容,当确定了第一滚动控件的滚动情况以及第二滚动控件的滚动情况,可以相对应的控制页面内容的显示。具体的,所述方法还包括:
根据所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置,以及所述第一页面内容和第二页面内容,确定设备屏幕上的页面可显示区域当前所显示的内容。本实施例中,进一步可以利用第一滚动控件的滚动情况以及第二滚动控件的滚动情况,相应地快速平滑地控制页面内容在可见区域上显示。
如图3所示,是根据一示例性实施例示出的另一种滚动处理方法的流程图,针对相邻设置的两个或以上的原始滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域覆盖所述两个或以上的原始滚动控件的可滚动区域;
所述方法包括如下步骤:
在步骤302中,通过所述辅助滚动控件获取用户触发的滚动行为;
在步骤304中,根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
在步骤306中,根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
在一个可选的实现方式中,各所述原始滚动控件对应有页面内容,所述方法还包括:
根据各所述原始滚动控件在对应的可滚动区域上的当前位置,以及各所述原始滚动控件对应有页面内容,确定设备屏幕上的页面可显示区域当前所显示的内容。
在一个可选的实现方式中,所述本次滚动偏移量包括本次滚动相对于上一次滚动的偏移量,或者是本次滚动相对于对应的可滚动区域的原点的偏移量。
前述图2所示实施例示出了两个原始滚动控件的处理方式,在本实施例中,也有可能存在两个以上的相邻设置的页面,每个页面对应一原始滚动控件,本实施例提供有辅助滚动控件,辅助滚动控件的可滚动区域覆盖各原始滚动控件的可滚动区域,由辅助滚动控件接管在页面上的滚动行为,根据各原始滚动控件的可滚动区域的大小、辅助滚动控件的大小、辅助滚动控件的可滚动区域的大小,以及辅助滚动控件的滚动偏移量,从而可以确定各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
与前述滚动处理方法的实施例相对应,本说明书还提供了滚动处理装置及其所应用的电子设备的实施例。
本说明书滚动处理装置的实施例可以应用在电子设备上,例如智能手机或平板电脑等等设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在滚动处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书滚动处理装置所在计算机设备的一种硬件结构图,除了图4所示的处理器410、内存430、网络接口420、以及非易失性存储器440之外,实施例中装置431所在的电子设备,通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
如图5所示,图5是本说明书根据一示例性实施例示出的一种滚动处理装置的框图,针对相邻设置的第一滚动控件和第二滚动控件,提供有一辅助滚动控件,所述第一滚动控件的可滚动区域和第二滚动控件的可滚动区域构成所述辅助滚动控件的可滚动区域。
所述装置包括:
获取模块51,用于:通过所述辅助滚动控件获取用户触发的滚动行为;
偏移量确定模块52,用于:根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
位置确定模块53,用于:根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
可选的,所述第一滚动控件对应有第一页面内容,第二滚动控件对应有第二页面内容,所述装置还包括页面内容确定模块,用于:
根据所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置,以及所述第一页面内容和第二页面内容,确定设备屏幕上的页面可显示区域当前所显示的内容。
可选的,所述本次滚动偏移量包括本次滚动相对于上一次滚动的偏移量,或者是本次滚动相对于对应的可滚动区域的原点的偏移量。
可选的,所述辅助滚动控件的初始滚动方向为从所述第一滚动控件的可滚动区域向所述第二滚动控件的可滚动区域;
所述位置确定模块,还用于:
若所述辅助滚动控件在所述第一滚动控件的可滚动区域内,确定所述第一滚动控件的本次滚动偏移量为所述辅助滚动控件的本次滚动偏移量,所述第二滚动控件的本次滚动偏移量为零;
若所述辅助滚动控件的滚动块滚动至在所述第一滚动控件的可滚动区域与所述第二滚动控件的可滚动区域之间,第一滚动控件的偏移量为第一滚动控件的可滚动区域的高与所述辅助滚动控件的高的差值,所述第二滚动控件的偏移量为零;
若所述辅助滚动控件在所述第二滚动控件的可滚动区域内,确定所述第一滚动控件的偏移量为第一滚动控件的可滚动区域的高与所述辅助滚动控件的高的差值,所述第二滚动控件的本次滚动偏移量为所述辅助滚动控件的本次滚动偏移量与所述第一滚动控件的可滚动区域的高的差值。
如图6所示,图6是本说明书根据一示例性实施例示出的一种滚动处理装置的框图,针对相邻设置的两个或以上的原始滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域覆盖所述两个或以上的原始滚动控件的可滚动区域。
所述装置包括:
获取模块61,用于:通过所述辅助滚动控件获取用户触发的滚动行为;
偏移量确定模块62,用于:根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
位置确定模块63,用于:根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
可选的,所述原始滚动控件对应有页面内容,所述装置还包括页面内容确定模块,用于:
根据各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置,确定设备屏幕上的页面可显示区域当前所显示的页面内容。
可选的,所述本次滚动偏移量包括本次滚动相对于上一次滚动的偏移量,或者是本次滚动相对于对应的可滚动区域的原点的偏移量。
相应的,本说明书还提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
针对相邻设置的第一滚动控件和第二滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域包括所述第一滚动控件的可滚动区域和第二滚动控件的可滚动区域;
通过所述辅助滚动控件获取用户触发的滚动行为;
根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定所述第一滚动控件和第二滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置。
相应的,本说明书还提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
针对相邻设置的两个或以上的原始滚动控件,提供有一辅助滚动控件,所述辅助滚动控件的可滚动区域覆盖所述两个或以上的原始滚动控件的可滚动区域;
通过所述辅助滚动控件获取用户触发的滚动行为;
根据所述滚动行为,确定所述辅助滚动控件在其可滚动区域上的本次滚动偏移量;
根据所述辅助滚动控件在其可滚动区域上的本次滚动偏移量,确定各所述原始滚动控件在对应的可滚动区域上的本次滚动偏移量及当前位置
上述滚动处理装置中各个模块的功能和作用的实现过程具体详见上述滚动处理方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。