一种列表滑动的处理方法技术

技术编号:17837190 阅读:16 留言:0更新日期:2018-05-03 19:01
本发明专利技术涉及一种列表滑动的处理方法,包括:创建至少一个对象项目。对象项目包括至少一个列表项,列表项对应至少一个监听器对象。显示控件控制列表项中数据的显示布局。显示控件通过适配器与数据进行连接,适配器将数据的内容注入到显示控件中,并且对显示控件进行复用。本发明专利技术通过复用显示控件和监听对象,合起来就是对象项目,独立刷新数据内容有改变的列表项和有改变的监听器对象,以及引入适当的图片质量配置,可以是列表滑动更为流畅,打开列表界面更快。

A method of list slipping

The invention relates to a list slide processing method, comprising: creating at least one object item. The object project includes at least one list item, and the list item corresponds to at least one listener object. Displays the display layout of data in control list items. The display control is connected to the data through the adapter. The adapter inject data into the display control and reuse the display controls. By reusing display controls and listener objects, the invention is an object project. It can refresh the list items with changed data content and have changed listener objects, and introduce the appropriate image quality configuration, which can be more slippage and quicker to open the list interface.

【技术实现步骤摘要】
一种列表滑动的处理方法
本专利技术涉及列表滑动的处理,尤其是涉及能够降低程序对手机硬件资源占用的列表滑动的处理。
技术介绍
缩减代码减小安装包大小,少用静态变量,及时关闭IO流,用ViewStub、merge减少视图层。现有的处理办法只是在显示过程中对显示控件view重复使用,没有复用监听器对象,每一次刷新都是针对所有数据,严重损耗性能;并且针对某一条展示结果的点击逻辑处理都是交由父控件处理而不是自身处理,不符合面向对象的编程思维
技术实现思路
本专利技术为通过分离adapter、view、data,使他们独立负责自己的业务,以达到这样的目的:减少监听器对象的使用20%~90%。判断新老数据如果相同,不再渲染;对于改变项进行独立刷新;减少50%以上的数据频繁加载。为实现上述目的,本专利技术提供了一种列表滑动的处理方法,包括:创建至少一个对象项目;对象项目包括至少一个列表项,列表项对应至少一个监听器对象;显示控件控制列表项中数据的显示布局。显示控件通过适配器与数据进行连接,适配器将数据的内容注入到显示控件中,并且对显示控件进行复用。优选地,对显示控件进行复用步骤,包括对列表项和监听器对象进行刷新,刷新操作只对改变的列表项和监听器对象进行独立刷新。优选地,显示控件与列表项一一对应。优选地,数据为质量压缩后的图像。优选地,质量压缩后的图像采用RGB_565像素配置。优选地,将显示控件中的数据和准备注入到显示控件中的数据和进行比较,当数据相同时,不再进行渲染。优选地,适配器、显示控件和数据相互分离并独立运行。本专利技术通过复用显示列表和监听对象,合起来就是对象项目,独立刷新有改变的监听器对象,以及引入适当的图片质量配置,可以是列表滑动更为流畅,打开列表界面更快。附图说明图1为一种列表滑动的处理方法流程图。具体实施方式下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。如图1所示,为一种列表滑动的处理方法流程图。本专利技术提供了一种列表滑动的处理方法,包括:创建至少一个对象项目;对象项目包括至少一个列表项,列表项对应至少一个监听器对象;显示控件控制列表项中数据的显示布局。显示控件通过适配器与数据进行连接,适配器将数据的内容注入到显示控件中,并且对显示控件进行复用。通过分离适配器adapter、显示控件view和数据data,使他们独立负责自己的业务,以达到这样的目的:减少监听器对象的使用20%~90%。判断新老数据如果相同,不再渲染;对于改变的列表项和改变的监听器对象进行独立刷新;减少50%以上的数据频繁加载。同时对展示的图片进行压缩,图片在手机中占用内存大小=图片宽*图片高*一个像素占用的字节数,图片的宽高可以由图片提供者指定,提供者可以是服务端。在客户端处,指定图片的单位像素配置为RGB_565标准,而不是高清配置ARGB_8888标准,这样能为图片加载省去50%的内存。android和ios系统内部都有一种机制,就是View的复用。view用来控制数据的显示,如字体大小、颜色、页面布局等。但是不会对监听器对象进行复用。在一个实施例中,两屏总共有20条的列表数据,每一屏显示10数据当第11条数据被滑出来第1条数据自然就会被滑出屏幕,这时候第11条数据所用到的view就是之前的第1条数据的view,只需要把view里面的内容换成第11条的数据即可。如果继续滑动,那么就有第12复用第2条的view,以此类推。但是如果第11条数据不复用第1条的view,它就需要自己在系统层重新做一遍第1条数据产生view时候的全部操作,如果此时有1000条数据,就会产生1000个view,这样程序很容易就崩了。在另一个实施例中,有两屏总共20条的列表数据,每一屏显示10条数据。通常的做法是在每一条数据显示的时候都给它创建一个监听器对象,例如:第6条数据初次显示出来的时候会为它创建一个监听器对象,当它划出屏幕后再划入屏幕又会给它创建一个监听器对象。在本实施例中,改进后的做法是:做一个对象项目ObjectItem,例如一个列表中的一个条目可以是线项目LinearItem,此条目如果包含有按钮,并且需要对按钮设置监听对象那么可以是按钮项目ButtonItem,这些项目作为监听器对象,都可以归为ObjectItem;这个ObjectItem会为列表项提供要显示的view,并且为这些列表项设置对应的监听器对象,那么当用户点击列表项Itemview的时候,ObjectItem自然就知道是哪个或者哪种Itemview被点击了,进而调用对应的监听器对象对点击做出响应。列表项Itemview可以看作是一个子view,多个列表项Itemview构成一个父view。因为view是系统级别的可以复用,那么在ObjectItem中设置的依附于view的监听器对象就也能复用了;如果监听器对象需要有当前view显示的内容数据才能做出相应的操作,那么可以从依附的view获取这些数据拿来使用。通过上述方法,可以获得以下有益效果:一方面,能解决这样一种场景的问题:例如现在有一个2条内容的列表,这两条内容的view都是相同的,但是要求一个点击启动微博,另一个点击启动微信。那么按通常的做法是:在装这两条内容的列表容器ListView层面进行判断,然后对点击做出响应。这样显然是不符合面向对象编程思想和现实逻辑的,正常的逻辑应该是被点击者知道自己被点击并且对点击操作做出响应,而不是靠其他对象,例如Listview。那么引入ObjectItem之后这个问题就不会存在了,因为列表中的view知道自己被点击了,并且会做出进一步的处理。另一方面,增强程序的可扩展性:比如项目中当前使用的产品列表的容器是ListView,如果因项目调整需要使用回收列表recyclerView,那么直接换了就行,至于view和view的初始化,比如设置监听对象,把ObjectItem拿过来使用就行,他已经封装了所有显示、点击等其他逻辑。以上所述的具体实施方式,对本专利技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本专利技术的具体实施方式而已,并不用于限定本专利技术的保护范围,凡在本专利技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。本文档来自技高网...
一种列表滑动的处理方法

【技术保护点】
一种列表滑动的处理方法,其特征在于,包括:创建至少一个对象项目;所述对象项目包括至少一个列表项,所述列表项对应至少一个监听器对象;显示控件控制列表项中数据的显示布局;所述显示控件通过适配器与数据进行连接,所述适配器将数据的内容注入到所述显示控件中,并且对显示控件进行复用。

【技术特征摘要】
1.一种列表滑动的处理方法,其特征在于,包括:创建至少一个对象项目;所述对象项目包括至少一个列表项,所述列表项对应至少一个监听器对象;显示控件控制列表项中数据的显示布局;所述显示控件通过适配器与数据进行连接,所述适配器将数据的内容注入到所述显示控件中,并且对显示控件进行复用。2.根据权利要求1所述的方法,其特征在于,所述对显示控件进行复用步骤,包括对所述列表项和所述监听器对象进行刷新,所述刷新操作只对改变的列表项和监听器对象进行独立刷新。3.根据权...

【专利技术属性】
技术研发人员:褚思凡
申请(专利权)人:北京酷我科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1