CN114911564A - 一种页面移动处理方法、装置、设备和存储介质 - Google Patents

一种页面移动处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN114911564A
CN114911564A CN202210684507.8A CN202210684507A CN114911564A CN 114911564 A CN114911564 A CN 114911564A CN 202210684507 A CN202210684507 A CN 202210684507A CN 114911564 A CN114911564 A CN 114911564A
Authority
CN
China
Prior art keywords
target
perch
current
page
top view
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.)
Granted
Application number
CN202210684507.8A
Other languages
English (en)
Other versions
CN114911564B (zh
Inventor
周峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Youzhuju Network Technology Co Ltd
Original Assignee
Beijing Youzhuju Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Youzhuju Network Technology Co Ltd filed Critical Beijing Youzhuju Network Technology Co Ltd
Priority to CN202210684507.8A priority Critical patent/CN114911564B/zh
Publication of CN114911564A publication Critical patent/CN114911564A/zh
Application granted granted Critical
Publication of CN114911564B publication Critical patent/CN114911564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开实施例提供了一种页面移动处理方法、装置、设备和存储介质。该方法包括:展示目标页面,目标页面包括至少一个视图段组件,视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,栖顶视图单元在移动到屏幕顶端时停留展示;响应于用户触发的目标页面移动操作,获取目标页面移动操作对应的目标页面偏移量;基于预设更新方式和目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。通过本公开实施例的技术方案,可以在单个视图段组件中实现任意数量和任意位置的栖顶视图单元,提高了开发灵活性和开发效率。

Description

一种页面移动处理方法、装置、设备和存储介质
技术领域
本公开实施例涉及计算机技术,尤其涉及一种页面移动处理方法、装置、设备和存储介质。
背景技术
随着计算机技术的快速发展,在页面移动过程中,往往需要将页面中移动到屏幕顶端的某个视图单元停留在屏幕顶端处,并非随着移动消失,从而实现视图单元的栖顶效果。
目前,通常利用视图段组件section中的sectionHeader控件实现视图单元的栖顶效果。然而,由于一个视图段组件中只有一个sectionHeader控件,使得一个视图段组件中只能实现一个栖顶视图单元,并且该栖顶视图单元只能位于该视图段组件的头部位置,从而大大限制了单个视图段组件中的栖顶视图单元的数量和位置,具有较大的局限性。而且,若需要实现多个栖顶视图单元,则需要利用多个视图段组件进行实现,从而提高了开发工作量,降低了开发效率。
发明内容
本公开提供一种页面移动处理方法、装置、设备和存储介质,以在单个视图段组件中实现任意数量和任意位置的栖顶视图单元,提高了开发灵活性和开发效率。
第一方面,本公开实施例提供了一种页面移动处理方法,包括:
展示目标页面,所述目标页面包括至少一个视图段组件,所述视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,所述栖顶视图单元在移动到屏幕顶端时停留展示;
响应于用户触发的目标页面移动操作,获取所述目标页面移动操作对应的目标页面偏移量;
基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
第二方面,本公开实施例还提供了一种页面移动处理装置,包括:
目标页面展示模块,用于展示目标页面,所述目标页面包括至少一个视图段组件,所述视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,所述栖顶视图单元在移动到屏幕顶端时停留展示;
目标页面偏移量获取模块,用于响应于用户触发的目标页面移动操作,获取所述目标页面移动操作对应的目标页面偏移量;
布局更新模块,用于基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例任一所述的页面移动处理方法。
第四方面,本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本公开实施例任一所述的页面移动处理方法。
本公开实施例,通过展示目标页面,该目标页面包括至少一个视图段组件,每个视图段组件可以包括至少一个栖顶视图单元和至少一个常规视图单元,其中,栖顶视图单元在视图段组件中的位置可以是任意位置,不局限于视图段组件的头部位置;响应于用户触发的目标页面移动操作,获取目标页面移动操作对应的目标页面偏移量,并基于预设更新方式和目标页面偏移量,对当前屏幕中展示出的目标页面中的目标视图单元进行布局更新,从而通过布局更新的方式,可以使得布局更新后的每个栖顶视图单元在移动到屏幕顶端时停留在屏幕顶端进行展示,进而可以在单个视图段组件中实现任意数量和任意位置的栖顶视图单元,无需限制单个视图段组件中的栖顶视图单元的数量和位置,大大提高了开发灵活性和开发效率。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是本公开实施例所提供的一种页面移动处理方法的流程示意图;
图2是本公开实施例所提供的一种目标页面的移动示例图;
图3是本公开实施例所提供的另一种页面移动处理方法的流程示意图;
图4是本公开实施例所提供的另一种目标页面的移动示例图;
图5是本公开实施例所提供的一种页面移动处理装置的结构示意图;
图6是本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1为本公开实施例所提供的一种页面移动处理方法的流程示意图,本公开实施例适用于对页面移动过程进行处理,从而将移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示的情况,尤其是可以适用于在iOS操作系统中对页面移动过程进行处理的应用场景,该方法可以由页面移动处理装置来执行,该装置可以通过软件和/或硬件的形式实现,可选的,通过电子设备来实现,该电子设备可以是移动终端、PC端或服务器等。
如图1所示,页面移动处理方法具体包括以下步骤:
S110、展示目标页面,目标页面包括至少一个视图段组件,视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,栖顶视图单元在移动到屏幕顶端时停留展示。
其中,目标页面可以是指当前需要展示的任一页面。目标页面可以包括一个或多个视图段组件section,其具体数量可以基于业务需求进行设置。视图段组件section可以是将多个视图单元的创建和数据绑定等逻辑封装到一起的功能组件,从而可以将一张复杂的卡片拆解为多个独立的视图段组件,实现视图功能的高扩展和高复用。视图单元cell是指最小的UI(User Interface,用户界面)单元。栖顶视图单元可以是指具有栖顶功能的视图单元,也就是移动到屏幕顶端时会停留展示的视图单元。常规视图单元可以是指不具有栖顶功能的视图单元,也就是移动到屏幕顶端时会随着页面移动而消失,不会停留展示的视图单元。每个视图段组件可以包括一个或多个栖顶视图单元,也可以包括一个或多个常规视图单元,其具体数量可以基于业务需求进行设置。需要说明的是,可以基于业务需求,设置栖顶视图单元在视图段组件中的位置,该位置可以是任意位置,并不局限于视图段组件的头部位置。在目标页面开发后,可以对目标页面中需要栖顶的任意数量和任意位置处的视图单元进行标识,将具有栖顶标识的视图单元作为栖顶视图单元,未标识的视图单元作为常规视图单元,从而将目标页面中的所有视图单元划分为栖顶视图单元和常规视图单元。例如,图2给出了一种目标页面的移动示例图,如图2所示,该目标页面包括一个视图段组件,并且该视图段组件包括2个栖顶视图单元和4个常规视图单元。
具体地,可以基于用户触发操作展示出当前状态下的目标页面。例如,若检测到用户触发的目标页面打开操作,则可以基于原始布局信息展示出初始状态下的目标页面,比如图2中的初始状态下目标页面。若检测到用户触发的目标页面移动操作,则可以基于布局更新后的目标布局信息展示出状态1或者状态2下的目标页面,使得用户在状态1或者状态2下的目标页面的基础上继续触发目标页面移动操作,以便可以继续移动目标页面。
S120、响应于用户触发的目标页面移动操作,获取目标页面移动操作对应的目标页面偏移量。
其中,目标页面移动操作可以是指对目标页面进行移动的用户操作。目标页面移动操作可以是通过用户滑动目标页面而生成的滑动操作,比如上下滑动操作或者左右滑动操作,以便基于目标页面滑动操作进行布局的动态实时更新。目标页面移动操作也可以是通过用户点击特定视图单元后,因展示出更多隐藏的视图单元而导致目标页面移动的点击操作。目标页面偏移量可以是指相对于初始状态下的目标页面而言,当次移动后的目标页面的偏移量,如图2所示。例如,目标页面偏移量可以是指目标页面的左上角位置点与屏幕左上角位置点之间的距离。
具体地,若检测到用户在展示的目标页面上触发的目标页面移动操作,则可以基于该目标页面移动操作确定出当次移动后的目标页面偏移量。例如,可以基于目标页面滑动操作对应的滑动速度和滑动加速度等信息确定出当次移动后的目标页面偏移量。
S130、基于预设更新方式和目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
其中,目标视图单元可以是指在目标页面移动过程中,当前屏幕中所展示出的视图单元。目标视图单元可以基于预设更新方式进行确定。预设更新方式可以是预先设置的视图单元的布局更新方式。例如,预设更新方式可以包括:局部更新方式和全局更新方式。在预设更新方式为局部更新方式时,仅将当前屏幕中展示出的所有栖顶视图单元确定为目标视图单元。在预设更新方式为全局更新方式时,将当前屏幕中展示出的所有栖顶视图单元和所有常规栖顶单元确定为目标视图单元。
具体地,基于预设更新方式和目标页面偏移量,对当前屏幕中展示出的所有目标视图单元进行布局更新,在布局更新后,使得展示出的目标页面中的任一栖顶视图单元在向上移动到屏幕顶端时停留在屏幕顶端进行展示,从而可以实现视图段组件中任意位置处的任意一个栖顶视图单元的栖顶效果,进而在单个视图段组件中实现任意位置任意数量的栖顶功能,大大提高了开发灵活性和开发效率。
示例性地,S130可以包括:基于目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元进行局部的布局更新;或者,基于目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元和目标常规视图单元进行全局的布局更新。
具体地,可以在目标页面移动过程中对当前屏幕中展示出的所有目标栖顶视图单元和所有目标常规视图单元进行全局的布局更新。例如,基于目标页面偏移量,重新计算移动后的目标页面中的每个栖顶视图单元和每个常规视图单元对应的目标布局位置信息,从而进行布局的全量计算。获取计算后的当前屏幕中展示出的每个目标栖顶视图单元对应的目标布局位置信息和每个目标常规视图单元对应的目标布局位置信息,并基于获得的各个目标布局位置信息对当前屏幕中展示出的所有目标栖顶视图单元和所有目标常规视图单元进行布局更新,展示出布局更新后的目标页面,此时向上移动到屏幕顶端的栖顶视图单元会停留在屏幕顶端进行展示。需要说明的是,在布局的全量计算过程中,由于常规视图单元在目标页面中的位置是固定的,不会随着页面移动而发生改变,从而重新计算后的常规视图单元对应的目标布局位置信息与原始布局位置信息相同。在页面移动过程中,栖顶视图单元在目标页面中的位置可能会发生变化,以便实现栖顶效果。全局计算过程中的栖顶视图单元对应的目标布局位置信息的确定过程与局部计算过程中的栖顶视图单元对应的目标布局位置信息的确定过程相同,可参见如下相关描述,此处不再赘述。
本实施例也可以在目标页面移动过程中仅对当前屏幕中展示出的所有目标栖顶视图单元进行局部的布局更新,无需对当前屏幕中展示出的所有常规栖顶视图单元和不在当前屏幕内的所有视图单元进行布局计算,从而可以大大降低布局更新的耗时时间,提高页面移动的流畅性,进而提升了用户体验。
示例性地,基于目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元进行局部的布局更新,可以包括:确定当前屏幕中展示出的目标栖顶视图单元;基于目标页面偏移量,确定目标页面移动后目标栖顶视图单元对应的目标布局位置信息,并基于目标布局位置信息对目标栖顶视图单元进行布局更新。
具体地,在局部的布局更新过程中,可以通过对目标页面中的每个栖顶视图单元注册追加视图SupplementaryView的方式,利用布局失效上下文UICollectionViewLayoutInvalidationContext,可以实时识别出当前屏幕中展示出的所有目标栖顶视图单元,并基于目标页面偏移量,仅需要计算出移动后的每个目标栖顶视图单元对应的目标布局位置信息,并基于该目标布局位置信息对相应的目标栖顶视图单元进行布局更新。通过仅对布局位置可能发生变化的目标栖顶视图单元进行布局计算和更新,可以在实现栖顶效果的同时大大降低布局更新的耗时,从而提高了页面移动的流畅性。
本公开实施例的技术方案,通过展示目标页面,该目标页面包括至少一个视图段组件,每个视图段组件可以包括至少一个栖顶视图单元和至少一个常规视图单元,其中,栖顶视图单元在视图段组件中的位置可以是任意位置,不局限于视图段组件的头部位置;响应于用户触发的目标页面移动操作,获取目标页面移动操作对应的目标页面偏移量,并基于预设更新方式和目标页面偏移量,对当前屏幕中展示出的目标页面中的目标视图单元进行布局更新,从而通过布局更新的方式,可以使得布局更新后的每个栖顶视图单元在移动到屏幕顶端时停留在屏幕顶端进行展示,进而可以在单个视图段组件中实现任意数量和任意位置的栖顶视图单元,无需限制单个视图段组件中的栖顶视图单元的数量和位置,大大提高了开发灵活性和开发效率。
图3为本公开实施例所提供的另一种页面移动处理方法的流程示意图,本公开实施例在上述公开实施例的基础上,对步骤“确定当前屏幕中展示出的目标栖顶视图单元”和“基于目标页面偏移量,确定目标页面移动后目标栖顶视图单元对应的目标布局位置信息”进行了优化。其中与上述各公开实施例相同或相应的术语的解释在此不再赘述。
如图3所示,页面移动处理方法具体包括以下步骤:
S310、展示目标页面,目标页面包括至少一个视图段组件,视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,栖顶视图单元在移动到屏幕顶端时停留展示。
S320、响应于用户触发的目标页面移动操作,获取目标页面移动操作对应的目标页面偏移量。
S330、获取布局失效上下文,其中,布局失效上下文是用于存储在目标页面移动过程中,当前屏幕中展示出的目标栖顶视图单元所对应的失效标识信息。
具体地,可以在布局失效上下文UICollectionViewLayoutInvalidationContext中,将目标页面移动过程中,当前屏幕中展示出的所有目标栖顶视图单元进行失效标记,获得存储有失效标识信息的布局失效上下文。可以通过调用操作系统中的布局失效上下文获取函数,比如invalidateLayout(with context:UICollectionViewLayoutInvalidationContext),获得布局失效上下文。
示例性地,在S330之前,还包括:对目标页面中的栖顶视图单元进行追加视图注册,以及对目标页面中的常规视图单元进行常规视图注册;在目标页面移动过程中,将当前屏幕中展示出的注册为追加视图的目标栖顶视图单元标记为失效,生成布局失效上下文。
具体地,可以使用不同类型的视图对栖顶视图单元和常规视图单元进行注册,并使用不同的布局属性进行关联,以使布局失效上下文可以基于注册的不同视图类型有效识别出栖顶视图单元。例如,可以使用追加视图Supplementary Views,对目标页面中的每个栖顶视图单元进行追加视图注册,并关联追加视图布局属性UICollectionViewLayoutAttributes.init(forSupplementaryViewOfKindelementKind:String,with indexPath:IndexPath)。可以使用常规视图UICollecti onViewCell,对目标页面中的每个常规视图单元进行常规视图注册,并关联常规视图布局属性UICollectionViewLayoutAttributes.init(forCellWith indexPath:IndexPath)。目标移动开始后,可以通过调用操作系统中的布局失效检测函数,比如shouldInvalidateLayout(forBoundsChange newBounds:CGRect)–>Bool,检测是否应该布局失效,若当前屏幕中有栖顶视图单元,则返回结果为ture,若当前屏幕中没有栖顶视图单元,则返回结果为false。在返回结果为ture时,可以通过调用操作系统中的失效上下文返回函数,比如invalidationContext(forBoundsChange newBounds:CGRect)–>UICollectionViewLayoutInvalidationContext,返回失效上下文,并可以通过调用操作系统中的失效标记函数,invalidateSupplementaryElements(ofKindelementKind:String,at indexPaths:[IndexPath]),在失效上下文中将当前屏幕中展示出的注册为追加视图的目标栖顶视图单元标记为失效,生成标记后的布局失效上下文。通过利用布局失效上下文可以准确地识别出当前屏幕中展示出的目标栖顶视图单元,从而提高局部布局更新的准确性,进而在实现栖顶效果的同时大大降低了布局更新的耗时。
S340、将布局失效上下文中的失效标识信息所对应的视图单元确定为目标栖顶视图单元。
具体地,可以将布局失效上下文中的标记有失效标识信息的每个视图单元均确定为目标栖顶视图单元,从而可以准确地识别出当前屏幕中展示出的目标栖顶视图单元。
S350、对各个目标栖顶视图单元进行遍历,获得当前遍历到的当前目标栖顶视图单元。
具体地,可以对当前屏幕中展示出的各个目标栖顶视图单元进行遍历,比如,从第一个目标栖顶视图单元开始进行遍历,将每次遍历到的目标栖顶视图单元作为当前目标栖顶视图单元进行移动后的布局计算。需要说明的是,每个目标栖顶视图单元移动后的布局计算过程均相同。
S360、获取当前栖顶偏移量,其中,当前栖顶偏移量的初始值为目标页面偏移量。
其中,图4给出了另一种目标页面的移动示例图。如图4所示,若当前时刻存在已栖顶且始终栖顶的第一栖顶视图单元,则当前栖顶偏移量可以是指当前时刻下的第一栖顶视图单元的栖顶高度和目标栖顶视图单元之和。当前栖顶偏移量可以用于表征下一时刻在屏幕顶端进行栖顶的位置,也就是在第一栖顶视图单元的下方位置继续展示出下一个栖顶视图单元。若当前时刻不存在已栖顶且始终栖顶的第一栖顶视图单元,则当前栖顶偏移量为目标页面偏移量。
具体地,在首次遍历时,当前屏幕中不存在已栖顶且始终栖顶的第一栖顶视图单元,此时可以直接将目标页面偏移量作为当前栖顶偏移量的初始值,并在遍历过程中可以基于已栖顶且始终栖顶的第一栖顶视图单元,对当前栖顶偏移量进行实时更新。
S370、基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局位置信息。
其中,移动后的每个栖顶视图单元的状态可以包括正在栖顶状态和非栖顶状态。非栖顶状态可以是指栖顶视图单元还未移动到屏幕顶端的状态,比如,图2或者图4处于状态1中的栖顶视图单元2。正在栖顶状态可以是指栖顶视图单元移动到屏幕顶端进行栖顶的状态,比如图2或者图4处于状态1中的栖顶视图单元1(阴影框代表正在栖顶状态)。栖顶类型可以包括更替栖顶和始终栖顶。更替栖顶可以是指栖顶视图单元之前处于正在栖顶状态,被后续栖顶视图单元更替为非栖顶状态,比如图2处于状态2中的栖顶视图单元1。始终栖顶可以是指栖顶视图单元移动到屏幕顶端后始终处于正在栖顶状态,不会被后续栖顶视图单元进行更替,比如图4处于状态2中的栖顶视图单元1。本实施例可以基于业务需求预先设置每个栖顶视图单元对应的栖顶类型,从而满足用户的个性化需求。
其中,当前目标栖顶视图单元对应的目标布局位置信息可以是移动后的布局位置三维坐标信息。例如,以目标页面的左上角为原点建立坐标系,获得每个栖顶视图单元的左上角位置点所对应的三维坐标信息,作为布局位置信息。本实施例可以将每个栖顶视图单元对应的Z轴方向的Z坐标值zIndex设置为第一数值,将每个常规视图单元对应的Z轴方向的Z坐标值zIndex设置为第二数值,且第一数值大于第二数值,比如第一数值设置为10,第二数值设置为0,使得常规视图单元在处于正在栖顶状态的栖顶视图单元的下方移出屏幕,避免进行遮挡,从而提高展示效果。目标页面的移动方向可以包括上下移动或者左右移动。如图2或者图4所示,在上下移动目标页面时,可以将向上移动到屏幕顶端的栖顶视图单元停留在屏幕顶端,此时移动方向为Y轴,从而仅需对栖顶视图单元对应的Y轴方向的Y坐标值进行更新,X轴方向的X坐标值不会因栖顶而发生变化,所以在上下移动目标页面时,仅需重新计算移动后的当前目标栖顶视图单元对应的Y轴坐标值,X轴坐标值和Z轴坐标值仍为原始数值。同理,在左右移动目标页面时,可以将向左移动到屏幕顶端的栖顶视图单元停留在屏幕顶端,此时移动方向为X轴,从而仅需重新计算移动后的当前目标栖顶视图单元对应的X轴坐标值,Y轴坐标值和Z轴坐标值仍为原始数值。
示例性地,在步骤S370中,可以通过执行如下步骤S371和S372确定出当前目标栖顶视图单元对应的目标布局移动坐标值:
S371、检测当前目标栖顶视图单元对应的原始布局移动坐标值是否小于当前栖顶偏移量,其中,原始布局移动坐标值是相对于目标页面而言,当前目标栖顶视图单元对应的原始布局位置坐标中在预设移动方向上的相对坐标值。
其中,预设移动方向可以是指X方向或者Y方向。例如,在上下移动目标页面时,预设移动方向为Y方向。在左右移动目标页面时,预设移动方向为X方向。原始布局移动坐标值可以是指在以目标页面的左上角为原点建立的坐标系中,当前目标栖顶视图单元的左上角位置点在预设移动方向上的原始坐标值,比如Y轴坐标值或者X轴坐标值。
具体地,通过检测当前目标栖顶视图单元对应的原始布局移动坐标值是否小于当前栖顶偏移量,可以确定出在目标页面移动后,当前目标栖顶视图单元是否会处于当前栖顶状态。
S372、基于检测结果、当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值。
其中,当前目标栖顶视图单元对应的目标布局移动坐标值可以是相对于目标页面而言,当前目标栖顶视图单元移动后的目标布局位置坐标中在预设移动方向上的相对坐标值。例如,目标布局移动坐标值可以是在目标页面建立的坐标系中,当前目标栖顶视图单元的左上角位置点在预设移动方向上移动后的坐标值,比如移动后的Y轴坐标值或者X轴坐标值。
示例性地,S372可以包括:若原始布局移动坐标值小于当前栖顶偏移量,则基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值;若原始布局移动坐标值大于或等于当前栖顶偏移量,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为原始布局移动坐标值。
具体地,在原始布局移动坐标值小于当前栖顶偏移量时,表明当前目标栖顶视图单元移动到了屏幕顶端,需要进行栖顶,此时可以基于当前目标栖顶视图单元对应的栖顶类型,确定出移动后的目标布局移动坐标值。在原始布局移动坐标值大于或等于当前栖顶偏移量时,表明当前目标栖顶视图单元还未移动到屏幕顶端,无需进行栖顶,此时可以直接将原始布局移动坐标值作为目标布局移动坐标值,以使当前目标栖顶视图单元继续在原始布局位置上进行展示。
示例性地,基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值,可以包括:
若当前目标栖顶视图单元对应的栖顶类型为始终栖顶,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为当前栖顶偏移量,并基于当前目标栖顶视图单元对应的栖顶高度,对当前栖顶偏移量进行更新;若当前目标栖顶视图单元对应的栖顶类型为更替栖顶,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为当前栖顶偏移量,并将当前目标栖顶视图单元作为目标已栖顶视图单元。
具体地,在当前目标栖顶视图单元对应的栖顶类型为始终栖顶时,将当前栖顶偏移量作为目标布局移动坐标值,以便在当前偏移量位置处停留展示出该当前目标栖顶视图单元,从而避免了当前目标栖顶视图单元移出屏幕,实现了栖顶效果。同时,由于当前目标栖顶视图单元为始终栖顶,从而需要对当前栖顶偏移量进行更新,也就是将当前目标栖顶视图单元对应的栖顶高度和当前栖顶偏移量进行相加,获得的相加结果作为更新后的当前栖顶偏移量,以便在当前目标栖顶视图单元的下面继续展示出下一栖顶视图单元,避免更替当前目标栖顶视图单元,从而实现了始终栖顶的效果,比如图4处于状态2中的栖顶视图单元1,下一个栖顶视图单元2是在栖顶视图单元的下方进行展示的。
在当前目标栖顶视图单元对应的栖顶类型为更替栖顶时,也是将当前栖顶偏移量作为目标布局移动坐标值,以便在当前偏移量位置处停留展示出该当前目标栖顶视图单元,从而避免了当前目标栖顶视图单元移出屏幕,实现了栖顶效果。同时,由于当前目标栖顶视图单元为更替栖顶,也就是当前目标栖顶视图单元允许被下一个栖顶视图单元所替代,从而不需要对当前栖顶偏移量进行更新,比如图2处于状态1中的栖顶视图单元1,可以被栖顶视图单元2更替为非栖顶状态,如状态2所示。
需要说明的是,可以将类别为更替栖顶且正在处于栖顶的当前目标栖顶视图单元作为目标已栖顶视图单元,以便后续在目标已栖顶视图单元被下一个栖顶视图单元更替为非栖顶状态后,可以准确地确定出更替后的目标已栖顶视图单元的布局位置信息。
S380、基于目标布局位置信息对目标栖顶视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
具体地,在确定出每个目标栖顶视图单元对应的目标布局位置信息后,可以通过调用操作系统中的局部更新函数,比如,layoutAttributesForSupplementaryView(ofKindelementKind:String,at indexPath:IndexPath),基于每个目标布局位置信息对相应的目标栖顶视图单元进行局部的布局更新,从而可以在实现栖顶效果的同时大大降低了布局更新的耗时,进而提高了页面移动的流畅度。
本公开实施例的技术方案,通过获取布局失效上下文,将布局失效上下文中的失效标识信息所对应的视图单元确定为目标栖顶视图单元,从而可以准确地识别出当前屏幕中的各个目标栖顶视图单元。通过对各个目标栖顶视图单元进行遍历,获得当前遍历到的当前目标栖顶视图单元,并基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局位置信息,从而可以在实现栖顶效果的同时大大降低了布局更新的耗时,进而提高了页面移动的流畅度。
在上述各技术方案的基础上,在S371之前,还可以包括:若检测到当前存在目标已栖顶视图单元,则基于当前目标栖顶视图单元对应的原始布局移动坐标值、目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量,检测目标已栖顶视图单元是否满足预设栖顶更替条件;若满足预设栖顶变更条件,则基于当前目标栖顶视图单元对应的原始布局移动坐标值和目标已栖顶视图单元对应的栖顶高度,对目标已栖顶视图单元对应的目标布局移动坐标值进行更新。
其中,预设栖顶更替条件可以是预设设置的,将处于正在栖顶状态的栖顶视图单元更替为非栖顶状态的条件。目标已栖顶视图单元可以是指处于正在栖顶状态且类型为交替栖顶的栖顶视图单元。目标已栖顶视图单元对应的栖顶高度可以是目标已栖顶视图单元的展示高度。
具体地,若检测到当前存在目标已栖顶视图单元,则表明当前屏幕中存在可以被更替的栖顶视图单元,此时可以将目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量进行相加,获得目标移动距离。若检测到当前目标栖顶视图单元对应的原始布局移动坐标值小于目标移动距离,则表明当前目标栖顶视图单元会将目标已栖顶视图单元更替为非栖顶状态,此时可以确定目标已栖顶视图单元满足预设栖顶更替条件。若满足预设栖顶变更条件,则可以确定当前目标栖顶视图单元对应的原始布局移动坐标值与目标已栖顶视图单元对应的栖顶高度之间的目标差值,并更新目标已栖顶视图单元对应的目标布局移动坐标值为目标差值,从而使得目标已栖顶视图单元可以移动到当前目标栖顶视图单元的上方,如图2状态2中的栖顶视图单元1并没有位于原始布局位置上,而是移动到栖顶视图单元2的上方,以便在向下移动时可以快速复原栖顶视图单元1的栖顶状态,进一步提高了页面移动的流畅性。
图5为本公开实施例所提供的一种页面移动处理装置的结构示意图,如图4所示,该装置具体包括:目标页面展示模块510、目标页面偏移量获取模块520和布局更新模块530。
其中,目标页面展示模块510,用于展示目标页面,所述目标页面包括至少一个视图段组件,所述视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,所述栖顶视图单元在移动到屏幕顶端时停留展示;目标页面偏移量获取模块520,用于响应于用户触发的目标页面移动操作,获取所述目标页面移动操作对应的目标页面偏移量;布局更新模块530,用于基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
本公开实施例所提供的技术方案,通过展示目标页面,该目标页面包括至少一个视图段组件,每个视图段组件可以包括至少一个栖顶视图单元和至少一个常规视图单元,其中,栖顶视图单元在视图段组件中的位置可以是任意位置,不局限于视图段组件的头部位置;响应于用户触发的目标页面移动操作,获取目标页面移动操作对应的目标页面偏移量,并基于预设更新方式和目标页面偏移量,对当前屏幕中展示出的目标页面中的目标视图单元进行布局更新,从而通过布局更新的方式,可以使得布局更新后的每个栖顶视图单元在移动到屏幕顶端时停留在屏幕顶端进行展示,进而可以在单个视图段组件中实现任意数量和任意位置的栖顶视图单元,无需限制单个视图段组件中的栖顶视图单元的数量和位置,大大提高了开发灵活性和开发效率。
在上述技术方案的基础上,布局更新模块530,包括:
局部更新子模块,用于基于所述目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元进行局部的布局更新;或者,
全局更新子模块,用于基于所述目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元和目标常规视图单元进行全局的布局更新。
在上述各技术方案的基础上,局部更新子模块,包括:
目标栖顶视图单元确定单元,用于确定当前屏幕中展示出的目标栖顶视图单元;
局部更新单元,用于基于所述目标页面偏移量,确定目标页面移动后所述目标栖顶视图单元对应的目标布局位置信息,并基于所述目标布局位置信息对所述目标栖顶视图单元进行布局更新。
在上述各技术方案的基础上,目标栖顶视图单元确定单元,具体用于:
获取布局失效上下文,其中,所述布局失效上下文是用于存储在目标页面移动过程中,当前屏幕中展示出的目标栖顶视图单元所对应的失效标识信息;将所述布局失效上下文中的失效标识信息所对应的视图单元确定为目标栖顶视图单元。
在上述各技术方案的基础上,该装置还包括:
布局失效上下文生成模块,用于在获取布局失效上下文之前,对所述目标页面中的栖顶视图单元进行追加视图注册,以及对所述目标页面中的常规视图单元进行常规视图注册;在目标页面移动过程中,将当前屏幕中展示出的注册为追加视图的目标栖顶视图单元标记为失效,生成布局失效上下文。
在上述各技术方案的基础上,局部更新单元,包括:
单元遍历子单元,用于对各个所述目标栖顶视图单元进行遍历,获得当前遍历到的当前目标栖顶视图单元;
当前栖顶偏移量获取子单元,用于获取当前栖顶偏移量,其中,所述当前栖顶偏移量的初始值为所述目标页面偏移量;
目标布局位置信息确定子单元,用于基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局位置信息。
在上述各技术方案的基础上,目标布局位置信息确定子单元,包括:
检测子单元,用于检测当前目标栖顶视图单元对应的原始布局移动坐标值是否小于当前栖顶偏移量,其中,所述原始布局移动坐标值是相对于目标页面而言,当前目标栖顶视图单元对应的原始布局位置坐标中在预设移动方向上的相对坐标值;
确定子单元,用于基于检测结果、当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值。
在上述各技术方案的基础上,确定子单元,具体用于:
若所述原始布局移动坐标值小于当前栖顶偏移量,则基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值;若所述原始布局移动坐标值大于或等于当前栖顶偏移量,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为所述原始布局移动坐标值。
在上述各技术方案的基础上,确定子单元,还具体用于:
若当前目标栖顶视图单元对应的栖顶类型为始终栖顶,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为当前栖顶偏移量,并基于当前目标栖顶视图单元对应的栖顶高度,对当前栖顶偏移量进行更新;
若当前目标栖顶视图单元对应的栖顶类型为更替栖顶,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为当前栖顶偏移量,并将当前目标栖顶视图单元作为目标已栖顶视图单元。
在上述各技术方案的基础上,目标布局位置信息确定子单元,还包括:
更新子单元,用于在检测当前目标栖顶视图单元对应的原始布局移动坐标值是否小于当前栖顶偏移量之前,若检测到当前存在目标已栖顶视图单元,则基于当前目标栖顶视图单元对应的原始布局移动坐标值、所述目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量,检测所述目标已栖顶视图单元是否满足预设栖顶更替条件;若满足预设栖顶变更条件,则基于当前目标栖顶视图单元对应的原始布局移动坐标值和所述目标已栖顶视图单元对应的栖顶高度,对所述目标已栖顶视图单元对应的目标布局移动坐标值进行更新。
在上述各技术方案的基础上,更新子单元,具体用于:
将所述目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量进行相加,获得目标移动距离;若检测到当前目标栖顶视图单元对应的原始布局移动坐标值小于所述目标移动距离,则确定所述目标已栖顶视图单元满足预设栖顶更替条件。
在上述各技术方案的基础上,更新子单元,还具体用于:
确定当前目标栖顶视图单元对应的原始布局移动坐标值与所述目标已栖顶视图单元对应的栖顶高度之间的目标差值,并更新所述目标已栖顶视图单元对应的目标布局移动坐标值为所述目标差值。
本公开实施例所提供的页面移动处理装置可执行本公开任意实施例所提供的页面移动处理方法,具备执行页面移动处理方法相应的功能模块和有益效果。
值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。
图6为本公开实施例所提供的一种电子设备的结构示意图。下面参考图6,其示出了适于用来实现本公开实施例的电子设备(例如图6中的终端设备或服务器)500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。编辑/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开实施例提供的电子设备与上述实施例提供的页面移动处理方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的页面移动处理方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:展示目标页面,所述目标页面包括至少一个视图段组件,所述视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,所述栖顶视图单元在移动到屏幕顶端时停留展示;响应于用户触发的目标页面移动操作,获取所述目标页面移动操作对应的目标页面偏移量;基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,【示例一】提供了一种页面移动处理方法,包括:
展示目标页面,所述目标页面包括至少一个视图段组件,所述视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,所述栖顶视图单元在移动到屏幕顶端时停留展示;
响应于用户触发的目标页面移动操作,获取所述目标页面移动操作对应的目标页面偏移量;
基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
根据本公开的一个或多个实施例,【示例二】提供了一种页面移动处理方法,还包括:
可选的,所述基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,包括:
基于所述目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元进行局部的布局更新;或者,
基于所述目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元和目标常规视图单元进行全局的布局更新。
根据本公开的一个或多个实施例,【示例三】提供了一种页面移动处理方法,还包括:
可选的,所述基于所述目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元进行局部的布局更新,包括:
确定当前屏幕中展示出的目标栖顶视图单元;
基于所述目标页面偏移量,确定目标页面移动后所述目标栖顶视图单元对应的目标布局位置信息,并基于所述目标布局位置信息对所述目标栖顶视图单元进行布局更新。
根据本公开的一个或多个实施例,【示例四】提供了一种页面移动处理方法,还包括:
可选的,所述确定当前屏幕中展示出的目标栖顶视图单元,包括:
获取布局失效上下文,其中,所述布局失效上下文是用于存储在目标页面移动过程中,当前屏幕中展示出的目标栖顶视图单元所对应的失效标识信息;
将所述布局失效上下文中的失效标识信息所对应的视图单元确定为目标栖顶视图单元。
根据本公开的一个或多个实施例,【示例五】提供了一种页面移动处理方法,还包括:
可选的,在获取布局失效上下文之前,还包括:
对所述目标页面中的栖顶视图单元进行追加视图注册,以及对所述目标页面中的常规视图单元进行常规视图注册;
在目标页面移动过程中,将当前屏幕中展示出的注册为追加视图的目标栖顶视图单元标记为失效,生成布局失效上下文。
根据本公开的一个或多个实施例,【示例六】提供了一种页面移动处理方法,还包括:
可选的,所述基于所述目标页面偏移量,确定目标页面移动后所述目标栖顶视图单元对应的目标布局位置信息,包括:
对各个所述目标栖顶视图单元进行遍历,获得当前遍历到的当前目标栖顶视图单元;
获取当前栖顶偏移量,其中,所述当前栖顶偏移量的初始值为所述目标页面偏移量;
基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局位置信息。
根据本公开的一个或多个实施例,【示例七】提供了一种页面移动处理方法,还包括:
可选的,所述基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局位置信息,包括:
检测当前目标栖顶视图单元对应的原始布局移动坐标值是否小于当前栖顶偏移量,其中,所述原始布局移动坐标值是相对于目标页面而言,当前目标栖顶视图单元对应的原始布局位置坐标中在预设移动方向上的相对坐标值;
基于检测结果、当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值。
根据本公开的一个或多个实施例,【示例八】提供了一种页面移动处理方法,还包括:
可选的,所述基于检测结果、当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值,包括:
若所述原始布局移动坐标值小于当前栖顶偏移量,则基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值;
若所述原始布局移动坐标值大于或等于当前栖顶偏移量,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为所述原始布局移动坐标值。
根据本公开的一个或多个实施例,【示例九】提供了一种页面移动处理方法,还包括:
可选的,所述基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值,包括:
若当前目标栖顶视图单元对应的栖顶类型为始终栖顶,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为当前栖顶偏移量,并基于当前目标栖顶视图单元对应的栖顶高度,对当前栖顶偏移量进行更新;
若当前目标栖顶视图单元对应的栖顶类型为更替栖顶,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为当前栖顶偏移量,并将当前目标栖顶视图单元作为目标已栖顶视图单元。
根据本公开的一个或多个实施例,【示例十】提供了一种页面移动处理方法,还包括:
可选的,在检测当前目标栖顶视图单元对应的原始布局移动坐标值是否小于当前栖顶偏移量之前,还包括:
若检测到当前存在目标已栖顶视图单元,则基于当前目标栖顶视图单元对应的原始布局移动坐标值、所述目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量,检测所述目标已栖顶视图单元是否满足预设栖顶更替条件;
若满足预设栖顶变更条件,则基于当前目标栖顶视图单元对应的原始布局移动坐标值和所述目标已栖顶视图单元对应的栖顶高度,对所述目标已栖顶视图单元对应的目标布局移动坐标值进行更新。
根据本公开的一个或多个实施例,【示例十一】提供了一种页面移动处理方法,还包括:
可选的,所述基于当前目标栖顶视图单元对应的原始布局移动坐标值、所述目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量,检测所述目标已栖顶视图单元是否满足预设栖顶更替条件,包括:
将所述目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量进行相加,获得目标移动距离;
若检测到当前目标栖顶视图单元对应的原始布局移动坐标值小于所述目标移动距离,则确定所述目标已栖顶视图单元满足预设栖顶更替条件。
根据本公开的一个或多个实施例,【示例十二】提供了一种页面移动处理方法,还包括:
可选的,所述基于当前目标栖顶视图单元对应的原始布局移动坐标值和所述目标已栖顶视图单元对应的栖顶高度,对所述目标已栖顶视图单元对应的目标布局移动坐标值进行更新,包括:
确定当前目标栖顶视图单元对应的原始布局移动坐标值与所述目标已栖顶视图单元对应的栖顶高度之间的目标差值,并更新所述目标已栖顶视图单元对应的目标布局移动坐标值为所述目标差值。
根据本公开的一个或多个实施例,【示例十三】提供了一种页面移动处理装置,包括:
目标页面展示模块,用于展示目标页面,所述目标页面包括至少一个视图段组件,所述视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,所述栖顶视图单元在移动到屏幕顶端时停留展示;
目标页面偏移量获取模块,用于响应于用户触发的目标页面移动操作,获取所述目标页面移动操作对应的目标页面偏移量;
布局更新模块,用于基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (15)

1.一种页面移动处理方法,其特征在于,包括:
展示目标页面,所述目标页面包括至少一个视图段组件,所述视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,所述栖顶视图单元在移动到屏幕顶端时停留展示;
响应于用户触发的目标页面移动操作,获取所述目标页面移动操作对应的目标页面偏移量;
基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
2.根据权利要求1所述的页面移动处理方法,其特征在于,所述基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,包括:
基于所述目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元进行局部的布局更新;或者,
基于所述目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元和目标常规视图单元进行全局的布局更新。
3.根据权利要求2所述的页面移动处理方法,其特征在于,所述基于所述目标页面偏移量,对当前屏幕中展示出的目标栖顶视图单元进行局部的布局更新,包括:
确定当前屏幕中展示出的目标栖顶视图单元;
基于所述目标页面偏移量,确定目标页面移动后所述目标栖顶视图单元对应的目标布局位置信息,并基于所述目标布局位置信息对所述目标栖顶视图单元进行布局更新。
4.根据权利要求3所述的页面移动处理方法,其特征在于,所述确定当前屏幕中展示出的目标栖顶视图单元,包括:
获取布局失效上下文,其中,所述布局失效上下文是用于存储在目标页面移动过程中,当前屏幕中展示出的目标栖顶视图单元所对应的失效标识信息;
将所述布局失效上下文中的失效标识信息所对应的视图单元确定为目标栖顶视图单元。
5.根据权利要求4所述的页面移动处理方法,其特征在于,在获取布局失效上下文之前,还包括:
对所述目标页面中的栖顶视图单元进行追加视图注册,以及对所述目标页面中的常规视图单元进行常规视图注册;
在目标页面移动过程中,将当前屏幕中展示出的注册为追加视图的目标栖顶视图单元标记为失效,生成布局失效上下文。
6.根据权利要求3所述的页面移动处理方法,其特征在于,所述基于所述目标页面偏移量,确定目标页面移动后所述目标栖顶视图单元对应的目标布局位置信息,包括:
对各个所述目标栖顶视图单元进行遍历,获得当前遍历到的当前目标栖顶视图单元;
获取当前栖顶偏移量,其中,所述当前栖顶偏移量的初始值为所述目标页面偏移量;
基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局位置信息。
7.根据权利要求6所述的页面移动处理方法,其特征在于,所述基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局位置信息,包括:
检测当前目标栖顶视图单元对应的原始布局移动坐标值是否小于当前栖顶偏移量,其中,所述原始布局移动坐标值是相对于目标页面而言,当前目标栖顶视图单元对应的原始布局位置坐标中在预设移动方向上的相对坐标值;
基于检测结果、当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值。
8.根据权利要求7所述的页面移动处理方法,其特征在于,所述基于检测结果、当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值,包括:
若所述原始布局移动坐标值小于当前栖顶偏移量,则基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值;
若所述原始布局移动坐标值大于或等于当前栖顶偏移量,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为所述原始布局移动坐标值。
9.根据权利要求8所述的页面移动处理方法,其特征在于,所述基于当前目标栖顶视图单元对应的栖顶类型和当前栖顶偏移量,确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值,包括:
若当前目标栖顶视图单元对应的栖顶类型为始终栖顶,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为当前栖顶偏移量,并基于当前目标栖顶视图单元对应的栖顶高度,对当前栖顶偏移量进行更新;
若当前目标栖顶视图单元对应的栖顶类型为更替栖顶,则确定目标页面移动后的当前目标栖顶视图单元对应的目标布局移动坐标值为当前栖顶偏移量,并将当前目标栖顶视图单元作为目标已栖顶视图单元。
10.根据权利要求9所述的页面移动处理方法,其特征在于,在检测当前目标栖顶视图单元对应的原始布局移动坐标值是否小于当前栖顶偏移量之前,还包括:
若检测到当前存在目标已栖顶视图单元,则基于当前目标栖顶视图单元对应的原始布局移动坐标值、所述目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量,检测所述目标已栖顶视图单元是否满足预设栖顶更替条件;
若满足预设栖顶变更条件,则基于当前目标栖顶视图单元对应的原始布局移动坐标值和所述目标已栖顶视图单元对应的栖顶高度,对所述目标已栖顶视图单元对应的目标布局移动坐标值进行更新。
11.根据权利要求10所述的页面移动处理方法,其特征在于,所述基于当前目标栖顶视图单元对应的原始布局移动坐标值、所述目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量,检测所述目标已栖顶视图单元是否满足预设栖顶更替条件,包括:
将所述目标已栖顶视图单元对应的栖顶高度和当前栖顶偏移量进行相加,获得目标移动距离;
若检测到当前目标栖顶视图单元对应的原始布局移动坐标值小于所述目标移动距离,则确定所述目标已栖顶视图单元满足预设栖顶更替条件。
12.根据权利要求10所述的页面移动处理方法,其特征在于,所述基于当前目标栖顶视图单元对应的原始布局移动坐标值和所述目标已栖顶视图单元对应的栖顶高度,对所述目标已栖顶视图单元对应的目标布局移动坐标值进行更新,包括:
确定当前目标栖顶视图单元对应的原始布局移动坐标值与所述目标已栖顶视图单元对应的栖顶高度之间的目标差值,并更新所述目标已栖顶视图单元对应的目标布局移动坐标值为所述目标差值。
13.一种页面移动处理装置,其特征在于,包括:
目标页面展示模块,用于展示目标页面,所述目标页面包括至少一个视图段组件,所述视图段组件包括至少一个栖顶视图单元和至少一个常规视图单元,其中,所述栖顶视图单元在移动到屏幕顶端时停留展示;
目标页面偏移量获取模块,用于响应于用户触发的目标页面移动操作,获取所述目标页面移动操作对应的目标页面偏移量;
布局更新模块,用于基于预设更新方式和所述目标页面偏移量,对当前屏幕中展示出的目标视图单元进行布局更新,以使移动到屏幕顶端的栖顶视图单元停留在屏幕顶端进行展示。
14.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的页面移动处理方法。
15.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-12中任一所述的页面移动处理方法。
CN202210684507.8A 2022-06-16 2022-06-16 一种页面移动处理方法、装置、设备和存储介质 Active CN114911564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210684507.8A CN114911564B (zh) 2022-06-16 2022-06-16 一种页面移动处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210684507.8A CN114911564B (zh) 2022-06-16 2022-06-16 一种页面移动处理方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN114911564A true CN114911564A (zh) 2022-08-16
CN114911564B CN114911564B (zh) 2023-08-22

Family

ID=82770378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210684507.8A Active CN114911564B (zh) 2022-06-16 2022-06-16 一种页面移动处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN114911564B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020632A (zh) * 2016-05-25 2016-10-12 青岛海信电器股份有限公司 一种页面自适应显示方法及页面自适应显示装置
CN107111435A (zh) * 2016-02-29 2017-08-29 华为技术有限公司 一种页面滑动方法、装置及用户终端
WO2019052524A1 (zh) * 2017-09-14 2019-03-21 腾讯科技(深圳)有限公司 视图渲染方法、装置、介质及智能终端
CN110046021A (zh) * 2019-05-21 2019-07-23 北京字节跳动网络技术有限公司 一种页面显示方法、装置、系统、设备和存储介质
CN110704087A (zh) * 2019-09-30 2020-01-17 浙江大搜车软件技术有限公司 页面生成方法、装置、计算机设备和存储介质
CN111930455A (zh) * 2020-07-29 2020-11-13 腾讯音乐娱乐科技(深圳)有限公司 页面更新方法、装置、终端及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107111435A (zh) * 2016-02-29 2017-08-29 华为技术有限公司 一种页面滑动方法、装置及用户终端
CN106020632A (zh) * 2016-05-25 2016-10-12 青岛海信电器股份有限公司 一种页面自适应显示方法及页面自适应显示装置
WO2019052524A1 (zh) * 2017-09-14 2019-03-21 腾讯科技(深圳)有限公司 视图渲染方法、装置、介质及智能终端
CN110046021A (zh) * 2019-05-21 2019-07-23 北京字节跳动网络技术有限公司 一种页面显示方法、装置、系统、设备和存储介质
CN110704087A (zh) * 2019-09-30 2020-01-17 浙江大搜车软件技术有限公司 页面生成方法、装置、计算机设备和存储介质
CN111930455A (zh) * 2020-07-29 2020-11-13 腾讯音乐娱乐科技(深圳)有限公司 页面更新方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN114911564B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
CN111242881A (zh) 显示特效的方法、装置、存储介质及电子设备
CN112184738A (zh) 一种图像分割方法、装置、设备及存储介质
CN111882634B (zh) 一种图像渲染方法、装置、设备及存储介质
JP2021120867A (ja) 融合関係ネットワークの構築方法、融合関係ネットワークの構築装置、電子デバイス、記憶媒体及びプログラム
CN111127603B (zh) 动画生成方法、装置、电子设备及计算机可读存储介质
CN113191257B (zh) 笔顺检测方法、装置和电子设备
JP2024502516A (ja) データ注釈方法、装置、システム、デバイスおよび記憶媒体
CN111915532B (zh) 图像追踪方法、装置、电子设备及计算机可读介质
CN112487871B (zh) 笔迹数据处理方法、装置及电子设备
CN111796825B (zh) 一种弹幕的绘制方法、装置、设备和存储介质
CN113449498A (zh) 生成表单的方法、装置、存储介质及电子设备
CN117078888A (zh) 虚拟角色的服装生成方法、装置、介质及电子设备
CN114911564A (zh) 一种页面移动处理方法、装置、设备和存储介质
CN113204557B (zh) 电子表格导入方法、装置、设备及介质
CN115454306A (zh) 展示效果处理方法、装置、电子设备及存储介质
CN113961280B (zh) 视图的展示方法、装置、电子设备及计算机可读存储介质
CN116775174A (zh) 一种基于用户界面框架的处理方法、装置、设备及介质
CN113506356A (zh) 面积图的绘制方法、装置、可读介质和电子设备
CN111200705B (zh) 图像处理方法和装置
CN110826305A (zh) 在线表格的数据处理方法、装置、终端及服务器
CN111461227B (zh) 样本生成方法、装置、电子设备和计算机可读介质
CN116127342B (zh) 一种基于酒店的信息聚类处理方法、系统及平台
CN112346630B (zh) 状态确定方法、装置、设备和计算机可读介质
CN111563214B (zh) 参考线处理方法及装置
CN110070600B (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
GR01 Patent grant
GR01 Patent grant