一种列表视图中的网格显示方法和装置.pdf

上传人:1520****312 文档编号:1285816 上传时间:2018-04-12 格式:PDF 页数:13 大小:838.50KB
返回 下载 相关 举报
摘要
申请专利号:

CN201610922232.1

申请日:

2016.10.21

公开号:

CN106502674A

公开日:

2017.03.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/44申请日:20161021|||公开

IPC分类号:

G06F9/44

主分类号:

G06F9/44

申请人:

武汉斗鱼网络科技有限公司

发明人:

刘一琛

地址:

430000 湖北省武汉市东湖开发区软件园东路1号软件产业4.1期B1栋11楼

优先权:

专利代理机构:

北京超凡志成知识产权代理事务所(普通合伙) 11371

代理人:

王术兰

PDF下载: PDF下载
内容摘要

本发明提供了一种列表视图中的网格显示方法和装置,该方法包括:接收用户设置的列表视图中当前条目需要显示对象的显示数目;根据所述显示数目调整所述当前条目对应的网格布局控件,使所述网格布局控件的用于生成网格的网格子控件的数目与所述显示数目相等;根据所述网格布局控件在所述列表视图中生成网格,使每一个网格对应一个所述显示对象;在所述网格中显示对应的所述显示对象。本发明还公开相应的列表视图中的网格显示装置。

权利要求书

1.一种列表视图中的网格显示方法,其特征在于,该方法包括:
接收用户设置的列表视图中当前条目需要显示对象的显示数目;
根据所述显示数目调整所述当前条目对应的网格布局控件,使所述网格布局控件的用
于生成网格的网格子控件的数目与所述显示数目相等;
根据所述网格布局控件在所述列表视图中生成网格,使每一个网格对应一个所述显示
对象;
在所述网格中显示对应的所述显示对象。
2.如权利要求1所述的方法,其特征在于,在所述根据所述显示数目调整所述当前条目
对应的网格布局控件之前,包括:
检测列表视图中是否存在网格布局控件;
如果所述列表视图中未检测到网格布局控件,则创建网格布局控件。
3.如权利要求1所述的方法,其特征在于,所述根据所述显示数目调整所述当前条目对
应的网格布局控件,使所述网格布局控件的用于生成网格的网格子控件的数目与所述显示
数目相等,包括:
遍历所述网格布局控件的所有的网格子控件,如果网格子控件的数目大于所述显示数
目,则隐藏多余的所述网格子控件;
如果网格子控件的数目小于所述显示数目,则增加所述网格子控件,直到所述网格子
控件的数目与所述显示数目相等。
4.如权利要求1所述的方法,其特征在于,所述网格布局控件的属性信息包括网格列
数、网格间距。
5.如权利要求1或4所述的方法,其特征在于,所述根据所述网格布局控件在所述列表
视图中生成网格,包括:
根据所述显示数目和所述网格布局控件的属性信息中的的网格列数和网格间距,在列
表视图中生成网格。
6.一种列表视图中的网格显示装置,其特征在于,该装置包括:
接收单元,用于接收用户设置的列表视图中当前条目需要显示对象的显示数目;
网格调整单元,用于根据所述显示数目调整所述当前条目对应的网格布局控件,使所
述网格布局控件的用于生成网格的网格子控件的数目与所述显示数目相等;
网格生成单元,用于根据所述网格布局控件在所述列表视图中生成网格,使每一个网
格对应一个所述显示对象;
网格显示单元,用于在所述网格中显示对应的所述显示对象。
7.如权利要求6所述的装置,其特征在于,所述网格调整单元还用于:
检测列表视图中是否存在网格布局控件;
如果所述列表视图中未检测到网格布局控件,则创建网格布局控件。
8.如权利要求6所述的装置,其特征在于,所述网格调整单元还用于:
遍历所述网格布局控件的所有的网格子控件,如果网格子控件的数目大于所述显示数
目,则隐藏多余的所述网格子控件;
如果网格子控件的数目小于所述显示数目,则增加所述网格子控件,直到所述网格子
控件的数目与所述显示数目相等。
9.如权利要求6所述的装置,其特征在于,所述网格布局控件的属性信息包括网格列
数、网格间距。
10.如权利要求6或9所述的装置,其特征在于,所述网格生成单元还用于:
根据所述显示数目和所述网格布局控件的属性信息中的网格列数和网格间距,在列表
视图中生成网格。

说明书

一种列表视图中的网格显示方法和装置

技术领域

本发明涉及一种列表视图中的网格显示方法和装置。

背景技术

在安卓应用开发中,有不少应用都会有在列表中展示网格布局这种情况,目前常
用的方案是直接通过ListView控件中嵌套GridView控件来实现,把GridView控件当作
ListView控件中的一行item,通过ListView控件的adapter的getview方法获得。但是,这样
实现会出现以下几个问题:由于ListView和GridView都是由Abslistview类派生而来,
Abslistview类族的各个类之间直接嵌套会造成嵌套内部的类显示不全,所以需要重写
GridView控件中的onMeasure方法,Gridview的高度测量模式换成AT_MOST,这样设置导致
Gridview的item的复用机制失效,对整个列表视图的刷新造成影响。另外,在ListView控件
中嵌套GridView控件后,需要给GridView控件设置adapter方法,所以在列表视图滑动时,
每次都需要创建一次adapter,而在滑动时创建对象会对整个UI的刷新造成较大的性能影
响,影响帧率,给用户造成卡顿的感觉。

发明内容

有鉴于此,本发明的目的在于提供一种列表视图中的网格显示方法和装置,以力
图解决或者至少缓解上面存在的问题。

第一方面,本发明提供一种列表视图中的网格显示方法,该方法包括:

接收用户设置的列表视图中当前条目需要显示对象的显示数目;

根据所述显示数目调整所述当前条目对应的网格布局控件,使所述网格布局控件
的用于生成网格的网格子控件的数目与所述显示数目相等;

根据所述网格布局控件在所述列表视图中生成网格,使每一个网格对应一个所述
显示对象;

在所述网格中显示对应的所述显示对象。

可选地,在根据本发明的方法中,在所述根据所述显示数目调整所述当前条目对
应的网格布局控件之前,包括:

检测列表视图中是否存在网格布局控件;

如果所述列表视图中未检测到网格布局控件,则创建网格布局控件。

可选地,在根据本发明的方法中,所述根据所述显示数目调整所述当前条目对应
的网格布局控件,使所述网格布局控件的用于生成网格的网格子控件的数目与所述显示数
目相等,包括:

遍历所述网格布局控件的所有的网格子控件,如果网格子控件的数目大于所述显
示数目,则隐藏多余的所述网格子控件;

如果网格子控件的数目小于所述显示数目,则增加所述网格子控件,直到所述网
格子控件的数目与所述显示数目相等。

可选地,在根据本发明的方法中,所述网格布局控件的属性信息包括网格列数、网
格间距。

可选地,在根据本发明的方法中,所述根据所述网格布局控件在所述列表视图中
生成网格,包括:

根据所述显示数目和所述网格布局控件的属性信息中的的网格列数和网格间距,
在列表视图中生成网格。

第二方面,本发明提供一种列表视图中的网格显示装置,该装置包括:

接收单元,用于接收用户设置的列表视图中当前条目需要显示对象的显示数目;

网格调整单元,用于根据所述显示数目调整所述当前条目对应的网格布局控件,
使所述网格布局控件的用于生成网格的网格子控件的数目与所述显示数目相等;

网格生成单元,用于根据所述网格布局控件在所述列表视图中生成网格,使每一
个网格对应一个所述显示对象;

网格显示单元,用于在所述网格中显示对应的所述显示对象。

可选地,在根据本发明的装置中,所述网格调整单元还用于:

检测列表视图中是否存在网格布局控件;

如果所述列表视图中未检测到网格布局控件,则创建网格布局控件。

可选地,在根据本发明的装置中,所述网格调整单元还用于:

遍历所述网格布局控件的所有的网格子控件,如果网格子控件的数目大于所述显
示数目,则隐藏多余的所述网格子控件;

如果网格子控件的数目小于所述显示数目,则增加所述网格子控件,直到所述网
格子控件的数目与所述显示数目相等。

可选地,在根据本发明的装置中,所述网格布局控件的属性信息包括网格列数、网
格间距。

可选地,在根据本发明的装置中,所述网格生成单元还用于:

根据所述显示数目和所述网格布局控件的属性信息中的网格列数和网格间距,在
列表视图中生成网格。

根据本发明的技术方案,在列表视图中采用网格布局控件实现显示对象的网格显
示,占用内存更少,在滑动列表时列表的刷新的速度有明显的优势,提高用户体验。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合
所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对
范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这
些附图获得其他相关的附图。

图1示出了本发明的列表视图中的网格显示装置的示例计算设备100的框图。

图2示出了本发明实施例所提供的一种列表视图中的网格显示方法的流程图。

图3示出了本发明实施例所提供的一种列表视图中的网格显示界面的图示。

图4示出了本发明实施例所提供的一种列表视图中的网格显示装置的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅
是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实
施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的
实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实
施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所
有其他实施例,都属于本发明保护的范围。

本发明的列表视图中的网格显示装置驻留在计算设备中,图1布置为实现根据本
发明的列表视图中的网格显示装置的示例计算设备100的框图。在基本的配置102中,计算
设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在
处理器104和系统存储器106之间的通信。

取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器
((μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸
如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心
114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、
数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器
104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。

取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易
失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储
器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,
应用122可以布置为在操作系统上利用程序数据124进行操作。

计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口
144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例
的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由
一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外
设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于
经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸
输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设
备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一
个或者多个其他计算设备162通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波
或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可
以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多
个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以
包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外
(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存
储介质和通信介质二者。

计算设备100可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设
备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个
人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以
实现为包括桌面计算机和笔记本计算机配置的个人计算机。

图2示出了根据本发明实施例所提供的一种列表视图中的网格显示方法的流程
图。如图2所示,在计算设备中执行,该方法始于步骤S210。

在步骤S210中,接收用户设置的列表视图中当前条目需要显示对象的显示数目。

列表视图(ListView)是安卓操作系统提供的一种应用或控件,可以上下滑动,在
列表视图控件中可以包含多个子布局,每个子布局占据一行,每个子布局称为其一条条目
(item)。列表视图控件可以通过adapter接口的getView方法获取列表视图中当前条目的显
示对象,如,文字、图片等等。用户可以在如服务器上设置列表视图中当前条目需要显示对
象的显示数目,列表视图控件从如服务器获取上述显示数目。其中,显示数目根据实际情况
进行设置,例如,需要显示20个显示对象。在一个实施例中,item中需要显示20个显示对象,
ListView控件会调用20次adapter接口中的getView方法来获得显示对象。

在步骤S220中,根据显示数目调整当前条目对应的网格布局控件,使网格布局控
件的用于生成网格的网格子控件的数目与显示数目相等。

网格布局控件(GridLayout)是使用虚细线将布局划分为行、列和单元格,安卓操
作系统通过自身提供的布局加载工具LayoutInflater对其进行加载。网格布局控件的布局
属性信息中可以存储网格间距、网格列数和网格行数等等,不过应当理解,上述网格布局控
件的属性不限于此。例如,在实际应用中,可以将orienttation属性设置成横向,以便通过
addview添加子控件时,按照从左往右的顺序,高度根据实际应用进行设置。

在根据显示数目调整当前条目对应的网格布局控件之前,检测列表视图中是否存
在网格布局控件。如果列表视图中未检测到网格布局控件,则创建网格布局控件,如,根据
ListView控件中getView方法中的参数convertView的值判断是否存在网格布局控件。
GirdLayout控件是通过ListView控件调用adapter的getView方法获得,在通过getView方
法获取网格布局控件时,需要对getView方法进行重写。getView方法中有个参数是
convertView,这个参数是表示当前item的复用。ListView控件首次调用getView方法时,
ListView控件中并没有GirdLayout控件,所以参数convertView的值为null。因此,可以根
据convertView值来判断GirdLayout是否创建。

根据一种实施方式,遍历网格布局控件的所有的网格子控件,如果网格子控件的
数目大于所述显示数目,则隐藏多余的网格子控件。如果网格子控件的数目小于显示数目,
则增加网格子控件,直到网格子控件的数目与显示数目相等。

ListView控件通过convertView中的findviewbyid函数找到当前条目的
GridLayout控件,调用GridLayout控件中的getChildCount方法获得网格子控件的数目。选
择显示数目和上述网格子控件的数目中较大的数目,对网格布局控件中的所有网格子控件
进行遍历。将网格子控件的数目与如当前条目显示对象的显示数目进行比对。如果网格子
控件的数目大于显示数目,将多余的网格隐藏,如,GridLayout控件需要调用
setVisibility方法,将参数设成GONE这个值。如果网格子控件的数目小于显示数目,
GridLayout控件调用LayoutInflater的infater方法将当前需要显示的网格子控件加载进
来,再通过GridLayout控件的addview方法将上述网格子控件添加到GridLayout中,直到网
格子控件的数目与显示数目相同为止。其中,每次遍历网格子控件时,调用GridLayout控件
中的getChildAT方法判断当前条目中是否存在网格子控件,如果上述条目中的当前位置不
存在网格子控件,需要调用如LayoutInflater方法创建网格子控件。

在步骤S230中,根据网格布局控件在列表视图中生成网格,使每一个网格对应一
个显示对象。

根据一种实施方式,根据显示数目和网格布局控件的属性信息中的的网格列数和
网格间距,在列表视图中生成网格。

通过计算设备如手机中运行的操作系统提供的getDisplayMetrics方法来获得触
摸屏的宽度,根据上述触摸屏的宽度、ListView控件中设置的页边距大小以及网格布局控
件的属性信息,计算每个网格所需要的实际区域,如,触摸屏宽度为pw,页边距为p,网格间
距s,网格列数为n,网格宽度w为触摸屏宽度减去所有的页边距和网格间距并除以网格列数
得到,公式为w=(pw-2p-(n-1)s)/n。调用网格布局控件的getLayoutParams函数获得布局
参数LayoutParams,通过LayoutParams来设置网格的宽和高,直接对LayoutParams的
LayoutParams.width和LayoutParams.height赋值即可。显示数目比较多时,ListView控件
中的条目(item)存在复用情况,因此,在每次获得当前条目的网格后,需要重新刷新其视
图,即网格中需要显示的目标对象。

在步骤S240中,在所述网格中显示对应的显示对象,具体可参考图3。

根据本发明的技术方案,在列表视图控件中采用网格布局控件实现显示对象的网
格显示,占用内存更少,在滑动列表时列表的刷新的速度有明显的优势,提高用户体验。

图4示出了根据本发明提供的实施例的一种列表视图中的网格显示装置的示意
图。如图4所示,该装置驻留在计算设备中,包括:接收单元410、网格调整单元420、网格生成
单元430和网格显示单元440。

接收单元410接收用户设置的列表视图中当前条目需要显示对象的显示数目。

网格调整单元420根据所述显示数目调整所述当前条目对应的网格布局控件,使
所述网格布局控件的用于生成网格的网格子控件的数目与所述显示数目相等。网格调整单
元420在调整当前条目对应的网格布局控件时,检测列表视图中是否存在网格布局控件。如
果所述列表视图中未检测到网格布局控件,则创建网格布局控件。随后,网格调整单元420
遍历所述网格布局控件的所有的网格子控件,如果当前网格子控件的数目大于所述显示数
目,则隐藏多余的所述网格子控件。如果当前网格子控件的数目小于所述显示数目,则增加
所述网格子控件,直到所述网格子控件的数目与所述显示数目相等。具体的过程可参考上
文中的方法描述,此处不做过多叙述。

网格生成单元430根据所述网格布局控件在所述列表视图中生成网格,使每一个
网格对应一个所述显示对象。网格布局控件的属性信息包括网格列数、网格间距。网格生成
单元430根据显示数目和所述网格布局控件的属性信息中的网格列数和网格间距,在列表
视图中生成网格

网格显示单元440在上述网格中显示对应的显示对象。

本发明实施例所提供的一种列表视图中的网格显示装置可以为设备上的特定硬
件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的
技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方
法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述
描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此
不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方
式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻
辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可
以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间
的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连
接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。

另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可
以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以
存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说
对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存
储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第
一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明
的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发
明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员
在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻
易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使
相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护
范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

一种列表视图中的网格显示方法和装置.pdf_第1页
第1页 / 共13页
一种列表视图中的网格显示方法和装置.pdf_第2页
第2页 / 共13页
一种列表视图中的网格显示方法和装置.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《一种列表视图中的网格显示方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种列表视图中的网格显示方法和装置.pdf(13页珍藏版)》请在专利查询网上搜索。

本发明提供了一种列表视图中的网格显示方法和装置,该方法包括:接收用户设置的列表视图中当前条目需要显示对象的显示数目;根据所述显示数目调整所述当前条目对应的网格布局控件,使所述网格布局控件的用于生成网格的网格子控件的数目与所述显示数目相等;根据所述网格布局控件在所述列表视图中生成网格,使每一个网格对应一个所述显示对象;在所述网格中显示对应的所述显示对象。本发明还公开相应的列表视图中的网格显示装置。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1