一种用于消除页面抖动的方法和装置制造方法

文档序号:6494362阅读:262来源:国知局
一种用于消除页面抖动的方法和装置制造方法
【专利摘要】本发明公开了一种用于消除页面抖动的方法和装置,适用于移动终端,用于消除页面显示中的抖动,其中该方法包括:预设多个用于内容加载和显示的模板;读取数据;根据各个数据的内容依次选择对应的模板,将数据与列表框控件绑定,生成列表框;当页面初始显示或页面滚动时,选取列表框中需要显示的数据,将需要显示的数据加载到内存中,生成用户界面元素;显示用户界面元素。本发明的方法和装置,可以在保证内存开销足够小的情况下消除页面抖动。
【专利说明】一种用于消除页面抖动的方法和装置
【技术领域】
[0001]本发明涉及计算机和通信领域,特别涉及一种用于消除页面抖动的方法和装置。【背景技术】
[0002]移动终端,例如智能手机,在浏览页面,例如浏览微博的页面时,一般多采用无限加载的方式呈现,对于大量数据的展示,会受到手机内存的一些限制,所以采用虚拟化来支持UI (user interface,用户界面)复用来减少内存的使用,对于复杂布局的列表框(ListBox),支持虚拟化的同时会带来页面抖动的现象。例如,ListBox滑动时,对于页面上的一些图片等内容需要异步加载,对于复杂布局的列表,由于每一项内容不同,需要展示的格式也不尽相同,内容的高度不固定,列表在渲染展示过程中,会不断计算需要展示的高度,对于图片等一些内容,是在列表渲染过程中异步加载,此时会对列表高度的计算造成误差。导致页面显示不全,并且随着图片的加载会造成页面的抖动。

【发明内容】

[0003]本发明提供一种用于消除页面抖动的方法和装置,以达到在移动终端显示页面时消除页面抖动的效果。为达到上述目的,本发明采用如下技术方案:
[0004]本发明公开了一种用于消除页面抖动的方法,该方法适用于移动终端,包括:
[0005]预设多个用于内容加载和显示的模板;
[0006]读取数据;
[0007]根据各个数据的内容依次选择对应的模板,将数据与列表框控件绑定,生成列表框;
[0008]当页面初始显示或页面滚动时,选取列表框中需要显示的数据,将需要显示的数据加载到内存中,生成用户界面元素;
[0009]显示用户界面元素。
[0010]其中,该方法进一步包括:监听列表框的滚动,当页面滚动时,将显示焦点设置于列表框之外的元素;当页面滚动停止时,将显示焦点设置于列表框。
[0011]其中,该方法进一步包括:判断内存中的数据是否需要显示,若判断为否,将该数据从内存中移除。
[0012]其中,该方法进一步包括:判断数据的显示方式,若数据的显示方式为默认的显示方式,则将缓存模式设置为默认模式;若数据的显示方式为循环的显示方式,则将缓存模式设置为循环模式。
[0013]其中,所述选取列表框中需要显示的数据,包括:选取列表框可视范围中的数据。
[0014]本发明还公开了一种实现应用割接的装置,该装置适用于移动终端,包括:预设模块、数据读取模块、列表框生成模块、数据加载模块和显示模块,
[0015]预设模块,用于预设多个用于内容加载和显示的模板;
[0016]数据读取模块,用于读取数据;[0017]列表框生成模块,用于根据各个数据的内容依次选择对应的模板,将数据与列表框控件绑定,生成列表框;
[0018]数据加载模块,当页面初始显示或页面滚动时,选取列表框中需要显示的数据,将需要显示的数据加载到内存中,生成用户界面元素;
[0019]显示模块,用于显示用户界面元素。
[0020]其中,该装置还包括:焦点设置模块,用于监听列表框的滚动,当页面滚动时,将显示焦点设置于列表框之外的元素;当页面滚动停止时,将显示焦点设置于列表框。
[0021]其中,所述数据加载模块,进一步用于判断内存中的数据是否需要显示,若判断为否,将该数据从内存中移除。
[0022]其中,该装置进一步包括:缓存设置模块,用于判断数据的显示方式,若数据的显示方式为默认的显示方式,则将缓存模式设置为默认模式;若数据的显示方式为循环的显示方式,则将缓存模式设置为循环模式。
[0023]其中,所述数据加载模块,具体用于选取列表框可视范围中的数据,加载到内存中,生成用户界面元素。
[0024]本发明实施例的有益效果是:通过使用预设模板以加载对应的数据内容,将数据与列表框控件绑定,生成列表框,从而可以在显示时不因为异步加载而发生抖动。
【专利附图】

【附图说明】
[0025]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026]图1为本发明较佳实施例提供的一种用于消除页面抖动的方法的流程图;
[0027]图2为本发明较佳实施例提供的一种用于消除页面抖动的装置的框图。
【具体实施方式】
[0028]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步的详细描述。
[0029]图1为本发明第一较佳实施例提供的一种用于消除页面抖动的方法的流程图。该方法适用于移动终端,包括以下的步骤:
[0030]SlOO:预设多个用于内容加载和显示的模板。
[0031]S200:读取数据。
[0032]S300:根据各个数据的内容依次选择对应的模板,将数据与列表框控件绑定,生成列表框。
[0033]S400:当页面初始显示或页面滚动时,选取列表框中需要显示的数据,将需要显示的数据加载到内存中,生成用户界面元素。
[0034]S500:显示用户界面元素。
[0035]本实施例之中,步骤S200之中,读取的数据可以是移动终端的本地文件或通过网络获得的信息等等。步骤S400的选取列表框中需要显示的数据,是选取列表框可视范围中的数据,或者说选取需显示在使用者视野中的数据。当然也可以一并选择与列表框可视范围中的数据相邻的数据,或者说,与需显示在使用者视野中的数据相邻的数据加载到内存中。通过仅将选择的数据加载到内存中,可以减小内存开销。
[0036]另外,该方法进一步包括变换焦点,以更进一步地降低页面的抖动。变换焦点的操作,具体包括:监听列表框的滚动,当页面滚动时,将显示焦点设置于列表框之外的元素;当页面滚动停止时,将显示焦点设置于列表框。
[0037]进一步地,当页面滚动时,可以判断内存中的数据是否需要显示,若判断为否,将该数据从内存中移除。这样,对于已经展示过的列表框的内容,如果不在列表框显示的可视范围内(换言之,不在用户的视野范围内)则从内存中移除。可以减小内存的开销,维护系统的运行质量。
[0038]进一步地,本实施例会设置缓存模式,具体地,可以通过设置虚拟堆栈面板(VSP,Virtualizing Stack Panel)的缓存模式(CacheMode)参数。包括:判断数据的显示方式,若数据的显示方式为默认的显示方式,则将缓存模式设置为默认(Standard)模式;若数据的显示方式为循环的显示方式,则将缓存模式设置为循环(Recycling)模式,系统会对已经生产并展示过的内容进行回收,来保证有足够的内存空间来展示需要的内容。这样可以根据显示方式的不同设置缓存模式,提高处理效率。
[0039]图2为本发明第一较佳实施例提供的一种用于消除页面抖动的装置的框图。该装置适用于移动终端,包括:预设模块100、数据读取模块200、列表框生成模块300、数据加载模块400和显示模块500。
[0040]预设模块100,用于预设多个用于内容加载和显不的模板。
[0041]数据读取模块200,用于读取数据。
[0042]列表框生成模块300,用于根据各个数据的内容依次选择对应的模板,将数据与列表框控件绑定,生成列表框。
[0043]数据加载模块400,当页面初始显示或页面滚动时,选取列表框中需要显示的数据,将需要显示的数据加载到内存中,生成用户界面元素。
[0044]显示模块500,用于显示用户界面元素。
[0045]本实施例之中的数据加载模块400,具体用于选取列表框可视范围中的数据,或者说使用者视野中的数据,加载到内存中,生成用户界面(UI)元素。当然也可以一并选择与列表框可视范围中的数据相邻的数据,或者说,与使用者视野中的数据相邻的数据加载到内存中。
[0046]本实施例之中,该装置还包括焦点设置模块600,可以变换焦点,以更进一步地降低页面的抖动。焦点设置模块600,用于监听列表框的滚动,当页面滚动时,将显示焦点设置于列表框之外的元素;当页面滚动停止时,将显示焦点设置于列表框。
[0047]进一步地,当页面初始显示或滚动时,数据加载模块400可以判断内存中的数据是否需要显示,当判断内存中的数据不需要显示时,将该数据从内存中移除。这样,对于已经展示过的内容,如果不在显示的可视范围内(换言之,不在用户的视野范围内)则从内存中移除。可以减小内存的开销,维护系统的运行质量。
[0048]该装置进一步包括缓存设置模块700,用于判断数据的显示方式,从而设置虚拟堆栈面板(VSP, Virtualizing Stack Panel)的缓存模式(CacheMode),若数据的显示方式为默认的显示方式,则将缓存模式设置为默认模式;若数据的显示方式为循环的显示方式,则将缓存模式设置为循环模式,系统会对已经生产并展示过的内容进行回收,来保证有足够的内存空间来展示需要的内容。
[0049]以下以WindowsPhone平台,特别地,以WindowsPhone7平台为例进行示例性的说明,仅仅是本发明的一些应用实例。
[0050]由于列表框中要展示的内容的格式不同,可以预设不同的模板,在给列表赋值的过程中,需要对每一项要填充到列表的内容,增加一个属性,即模板属性,来说明需要选择哪一种模板进行展示,用来提供给列表,以选择用那种模板进行展示,例如模板A展示图片内容,模板B展示文字内容,则需要在生成列表框(listbox)的数据的时候,将文字内容对应的模板属性设置为使用模板A,图片内容对应的模板属性设置为使用模板B, ListTemplate Selector类则根据设置的模板属性,来选择模板。
[0051]当列表停止时将焦点给滚动条,可以通过捕捉ListBox里滚动条状态来知道滚动条是在滚动中还是停止状态。当滚动条处于滚动状态时,把页面焦点给滚动条,此时可以防止其余元素获得焦点而影响列表元素高度的计算。当滚动条停止时把焦点交还给当前页面:
[0052]本发明的实施例具有以下的优点:
[0053](一)通过使用预设模板以加载对应的数据内容,将数据与列表框控件绑定,生成列表框,从而可以在显示时不因为异步加载而发生抖动;
[0054](二)通过变换焦点,更进一步地降低页面的抖动;
[0055](三)通过将不需要显示数据从内存中移除,可以减小内存的开销,维护系统的运行质量;
[0056](四)通过根据默认显示方式、循环显示方式的不同,设置缓存模式,可以提高处理效率。
[0057]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【权利要求】
1.一种用于消除页面抖动的方法,其特征在于,该方法适用于移动终端,包括: 预设多个用于内容加载和显示的模板; 读取数据; 根据各个数据的内容依次选择对应的模板,将数据与列表框控件绑定,生成列表框; 当页面初始显示或页面滚动时,选取列表框中需要显示的数据,将需要显示的数据加载到内存中,生成用户界面元素; 显示用户界面元素。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 监听列表框的滚动,当页面滚动时,将焦点交给页面;当滚动条停止时,将焦点交给滚动条。
3.根据权利要求1或2所述的方法,其特征在于,该方法进一步包括: 判断内存中的数据是否需要显示,若判断为否,将该数据从内存中移除。
4.根据权利要求1或2所述的方法,其特征在于,该方法进一步包括: 判断数据的显示方式,若数据的显示方式为默认的显示方式,则将缓存模式设置为默认模式;若数据的显示方式为循环的显示方式,则将缓存模式设置为循环模式。
5.根据权利要求1或2所述的方法,其特征在于: 所述选取列表框中需要显示的数据,包括:选取列表框可视范围中的数据。
6.一种用于消除页面抖动的装置,其特征在于,该装置适用于移动终端,包括:预设模块、数据读取模块、列表框生成模块、数据加载模块和显示模块, 预设模块,用于预设多个用于内容加载和显示的模板; 数据读取模块,用于读取数据; 列表框生成模块,用于根据各个数据的内容依次选择对应的模板,将数据与列表框控件绑定,生成列表框; 数据加载模块,当页面初始显示或页面滚动时,选取列表框中需要显示的数据,将需要显示的数据加载到内存中,生成用户界面元素; 显示模块,用于显示用户界面元素。
7.根据权利要求6所述的装置,其特征在于,该装置还包括: 焦点设置模块,用于监听列表框的滚动,当页面滚动时,将显示焦点设置于列表框之外的元素;当页面滚动停止时,将显示焦点设置于列表框。
8.根据权利要求6或7所述的装置,其特征在于, 所述数据加载模块,进一步用于判断内存中的数据是否需要显示,若判断为否,将该数据从内存中移除。
9.根据权利要求6或7所述的装置,其特征在于,该装置进一步包括: 缓存设置模块,用于判断数据的显示方式,若数据的显示方式为默认的显示方式,则将缓存模式设置为默认模式;若数据的显示方式为循环的显示方式,则将缓存模式设置为循环模式。
10.据权利要求6或7所述的装置,其特征在于, 所述数据加载模块,具体用于选取列表框可视范围中的数据,加载到内存中,生成用户界面元素。
【文档编号】G06F3/0482GK103914213SQ201210592706
【公开日】2014年7月9日 申请日期:2012年12月31日 优先权日:2012年12月31日
【发明者】杜立召 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1