CN107977204A - 一种列表滑动的处理方法 - Google Patents
一种列表滑动的处理方法 Download PDFInfo
- Publication number
- CN107977204A CN107977204A CN201711107167.8A CN201711107167A CN107977204A CN 107977204 A CN107977204 A CN 107977204A CN 201711107167 A CN201711107167 A CN 201711107167A CN 107977204 A CN107977204 A CN 107977204A
- Authority
- CN
- China
- Prior art keywords
- data
- list
- display control
- control
- list items
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明涉及一种列表滑动的处理方法,包括:创建至少一个对象项目。对象项目包括至少一个列表项,列表项对应至少一个监听器对象。显示控件控制列表项中数据的显示布局。显示控件通过适配器与数据进行连接,适配器将数据的内容注入到显示控件中,并且对显示控件进行复用。本发明通过复用显示控件和监听对象,合起来就是对象项目,独立刷新数据内容有改变的列表项和有改变的监听器对象,以及引入适当的图片质量配置,可以是列表滑动更为流畅,打开列表界面更快。
Description
技术领域
本发明涉及列表滑动的处理,尤其是涉及能够降低程序对手机硬件资源占用的列表滑动的处理。
背景技术
缩减代码减小安装包大小,少用静态变量,及时关闭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,并且为这些列表项设置对应的监听器对象,那么当用户点击列表项Item view的时候,ObjectItem自然就知道是哪个或者哪种Itemview被点击了,进而调用对应的监听器对象对点击做出响应。列表项Item view可以看作是一个子view,多个列表项Item view构成一个父view。因为view是系统级别的可以复用,那么在ObjectItem中设置的依附于view的监听器对象就也能复用了;如果监听器对象需要有当前view显示的内容数据才能做出相应的操作,那么可以从依附的view获取这些数据拿来使用。
通过上述方法,可以获得以下有益效果:
一方面,能解决这样一种场景的问题:例如现在有一个2条内容的列表,这两条内容的view都是相同的,但是要求一个点击启动微博,另一个点击启动微信。那么按通常的做法是:在装这两条内容的列表容器ListView层面进行判断,然后对点击做出响应。这样显然是不符合面向对象编程思想和现实逻辑的,正常的逻辑应该是被点击者知道自己被点击并且对点击操作做出响应,而不是靠其他对象,例如Listview。那么引入ObjectItem之后这个问题就不会存在了,因为列表中的view知道自己被点击了,并且会做出进一步的处理。另一方面,增强程序的可扩展性:比如项目中当前使用的产品列表的容器是ListView,如果因项目调整需要使用回收列表recyclerView,那么直接换了就行,至于view和view的初始化,比如设置监听对象,把ObjectItem拿过来使用就行,他已经封装了所有显示、点击等其他逻辑。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种列表滑动的处理方法,其特征在于,包括:
创建至少一个对象项目;所述对象项目包括至少一个列表项,所述列表项对应至少一个监听器对象;显示控件控制列表项中数据的显示布局;
所述显示控件通过适配器与数据进行连接,所述适配器将数据的内容注入到所述显示控件中,并且对显示控件进行复用。
2.根据权利要求1所述的方法,其特征在于,所述对显示控件进行复用步骤,包括对所述列表项和所述监听器对象进行刷新,所述刷新操作只对改变的列表项和监听器对象进行独立刷新。
3.根据权利要求1所述的方法,其特征在于,所述显示控件与列表项一一对应。
4.根据权利要求1所述的方法,其特征在于,所述数据为质量压缩后的图像。
5.根据权利要求3所述的方法,其特征在于,所述质量压缩后的图像采用RGB_565像素配置。
6.根据权利要求1所述的方法,其特征在于,将所述显示控件中的数据和准备注入到所述显示控件中的数据和进行比较,当数据相同时,不再进行渲染。
7.根据权利要求1所述的方法,其特征在于,所述适配器、所述显示控件和所述数据相互分离并独立运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711107167.8A CN107977204A (zh) | 2017-11-10 | 2017-11-10 | 一种列表滑动的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711107167.8A CN107977204A (zh) | 2017-11-10 | 2017-11-10 | 一种列表滑动的处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107977204A true CN107977204A (zh) | 2018-05-01 |
Family
ID=62013311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711107167.8A Pending CN107977204A (zh) | 2017-11-10 | 2017-11-10 | 一种列表滑动的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107977204A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108744514A (zh) * | 2018-05-18 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 一种滑动列表生成方法、数据展示方法、装置及存储介质 |
CN109710152A (zh) * | 2018-12-28 | 2019-05-03 | 北京小米移动软件有限公司 | 一种事件处理方法、装置及存储介质 |
CN110069314A (zh) * | 2019-04-29 | 2019-07-30 | 珠海豹好玩科技有限公司 | 一种数据展示方法、装置及相关产品 |
CN110147283A (zh) * | 2019-05-21 | 2019-08-20 | 北京字节跳动网络技术有限公司 | 一种显示内容切换显示方法、装置、设备及介质 |
CN113641432A (zh) * | 2021-08-10 | 2021-11-12 | 中国平安人寿保险股份有限公司 | 数据展示方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100045879A1 (en) * | 2008-08-22 | 2010-02-25 | National Chiao Tung University | Matrix display interface for presentation system |
CN103324389A (zh) * | 2013-06-03 | 2013-09-25 | 四川长虹电器股份有限公司 | 智能终端应用程序的操作方法 |
CN105867750A (zh) * | 2016-03-31 | 2016-08-17 | 郑州悉知信息科技股份有限公司 | 一种列表显示方法及装置 |
-
2017
- 2017-11-10 CN CN201711107167.8A patent/CN107977204A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100045879A1 (en) * | 2008-08-22 | 2010-02-25 | National Chiao Tung University | Matrix display interface for presentation system |
CN103324389A (zh) * | 2013-06-03 | 2013-09-25 | 四川长虹电器股份有限公司 | 智能终端应用程序的操作方法 |
CN105867750A (zh) * | 2016-03-31 | 2016-08-17 | 郑州悉知信息科技股份有限公司 | 一种列表显示方法及装置 |
Non-Patent Citations (1)
Title |
---|
孔令宏: ""Android中的ListView控件的优化方法"", 《电子技术与软件工程》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108744514A (zh) * | 2018-05-18 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 一种滑动列表生成方法、数据展示方法、装置及存储介质 |
CN108744514B (zh) * | 2018-05-18 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 一种滑动列表生成方法、数据展示方法、装置及存储介质 |
CN109710152A (zh) * | 2018-12-28 | 2019-05-03 | 北京小米移动软件有限公司 | 一种事件处理方法、装置及存储介质 |
CN109710152B (zh) * | 2018-12-28 | 2021-03-16 | 北京小米移动软件有限公司 | 一种事件处理方法、装置及存储介质 |
CN110069314A (zh) * | 2019-04-29 | 2019-07-30 | 珠海豹好玩科技有限公司 | 一种数据展示方法、装置及相关产品 |
CN110147283A (zh) * | 2019-05-21 | 2019-08-20 | 北京字节跳动网络技术有限公司 | 一种显示内容切换显示方法、装置、设备及介质 |
CN113641432A (zh) * | 2021-08-10 | 2021-11-12 | 中国平安人寿保险股份有限公司 | 数据展示方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977204A (zh) | 一种列表滑动的处理方法 | |
CN103823620B (zh) | 一种屏幕适配的方法和装置 | |
WO2018161957A1 (zh) | 图层绘制控制方法、装置及移动终端 | |
CN106873863B (zh) | 一种界面切换动画的设置方法及装置 | |
CN107807764B (zh) | 一种页面展示方法及客户端 | |
CN101764971B (zh) | 一种在屏显示装置及其在屏显示方法 | |
MX2012009334A (es) | Metodo y aparato para generar una interfaz de usuario. | |
CN105739934A (zh) | 多屏拼接显示处理方法和设备 | |
WO2015106651A1 (zh) | 一种更换界面色彩的系统及其实现方法 | |
WO2016034031A1 (zh) | 调整网页内容颜色的方法及装置 | |
CN103412748A (zh) | 嵌入式平台的用户界面的显示控制方法、装置及系统 | |
CN109992227A (zh) | 用户界面显示控制方法、装置、终端及计算机存储介质 | |
WO2018113218A1 (zh) | 一种拼接墙显示方法、装置及系统 | |
CN105204751A (zh) | 一种触屏设备背景图变换的方法及终端 | |
CN105808035A (zh) | 图标显示方法及装置 | |
CN103247283A (zh) | 一种屏幕刷新方法及装置 | |
CN103400565B (zh) | 一种基于gdi的界面分块刷新方法 | |
CN106325657A (zh) | 屏幕投影显示的控制方法、装置及移动终端 | |
CN109389558A (zh) | 一种消除图像边缘锯齿的方法及装置 | |
CN108989872B (zh) | 一种安卓电视背景快速切换方法、框架、服务器及存储介质 | |
CN106911937A (zh) | 一种直播中礼物横幅背景色的配置方法及系统 | |
CN109302629A (zh) | 一种用于为图片切换画框的方法及显示终端 | |
US20190304060A1 (en) | System and method for scaling content across multiple form factors | |
CN105893025A (zh) | 一种更换锁屏图片的方法 | |
US20110316877A1 (en) | Display area control apparatus, display area control method, and integrated circuit |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180501 |
|
RJ01 | Rejection of invention patent application after publication |