CN108363571A - 一种基于智能过滤的控件布局方法及系统 - Google Patents
一种基于智能过滤的控件布局方法及系统 Download PDFInfo
- Publication number
- CN108363571A CN108363571A CN201810002494.5A CN201810002494A CN108363571A CN 108363571 A CN108363571 A CN 108363571A CN 201810002494 A CN201810002494 A CN 201810002494A CN 108363571 A CN108363571 A CN 108363571A
- Authority
- CN
- China
- Prior art keywords
- control
- child
- intelligent filtering
- layout
- intelligent
- 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
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 159
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012216 screening Methods 0.000 claims abstract description 24
- 230000001186 cumulative effect Effects 0.000 claims description 7
- 230000001052 transient effect Effects 0.000 claims description 6
- 239000004744 fabric Substances 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Abstract
本发明提供一种基于智能过滤的控件布局方法及系统,所述的方法包括:将需要显示的所有子控件添加到所述智能过滤控件中,并按照智能过滤控件设置的布局方向,将每一个子控件按布局方向顺序摆放,其中,智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照布局方向绘制保留下来的所有的子控件。本发明为原生线性布局控件设计一智能过滤控件,通过智能过滤控件对需要显示的子控件进行筛选,使得原生线性布局控件中摆放的子控件都能够完整显示,也能够充分地利用原生线性布局控件的空间。
Description
技术领域
本发明涉及控件布局技术领域,更具体地,涉及一种基于智能过滤的控件布局方法及系统。
背景技术
在很多应用场合,都需要对子控件进行显示,比如,在直播领域,对每一个主播标签在一行或者一列进行显示,主播标签可以作为一个子控件由于每个主播标签的字数不一样,字体大小也不一样,体现为主播标签形成的子控件的高度和宽度也不一样,如果字数少的主播标签一行能放多个,字数多的主播标签一行也许只能放一个。
所有的主播标签需要显示,需要将所有的主播标签作为子控件绘制摆放于原生线性布局控件中,如果给原生线性布局控件添加的标签过多,会出现标签被截断的问题,如果给原生线性布局控件添加的标签过少,原生线性布局控件的布局界面会出现多出的空白区域。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的一种基于智能过滤的控件布局方法及系统。
根据本发明的一个方面,提供一种基于智能过滤的控件布局方法,包括:
将需要显示的所有子控件添加到智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;
对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;
在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,还包括:
获取所述智能过滤控件的宽高;
以及,所述将需要显示的所有子控件添加到所述智能过滤控件中之后还包括:
获取每一个子控件的宽高。
进一步的,所述布局方向包括竖向布局方向和横向布局方向。
进一步的,当所述布局方向为竖向布局方向时,所述对每一个子控件进行筛选具体包括:
将每一个子控件按照竖向方向在所述智能过滤控件中逐一顺序摆放;
判断当前子控件是否满足第一预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;
其中,所述第一预设条件是指当前子控件与其前面摆放的所有子控件的累加高度不超过所述智能过滤控件的高度,以及当前子控件的宽度不超过所述智能过滤控件的宽度。
进一步的,当所述布局方向为横向布局方向时,所述对每一个子控件进行筛选具体包括:
将每一个子控件按照横向布局方向在所述智能过滤控件中逐一顺序摆放;
判断当前子控件是否满足第二预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;
其中,所述第二预设条件是指当前子控件与其前面摆放的所有子控件的累加宽度不超过所述智能过滤控件的宽度,以及当前子控件的高度不超过所述智能过滤控件的高度。
进一步的,还包括:
在所述智能过滤控件中设置一线性对象,以及在线性对象中设置一列表集合;
将保留下来的所有的子控件存储于线性对象的列表集合中。
进一步的,所述在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件:
遍历所述线性对象的列表集合中的每一个子控件,按照所述智能过滤控件设置的布局方向,对每一个子控件在相应的摆放位置进行绘制。
根据本发明的另一个方面,提供了一种智能过滤的控件布局系统,包括:
添加模块,用于将需要显示的所有子控件添加到所述智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;
筛选模块,用于对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;
绘制模块,用于在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
进一步的,还包括:
设置模块,用于在所述智能过滤控件中设置一线性对象,以及在线性对象中设置一列表集合;
存储模块,用于将保留下来的所有的子控件存储于线性对象的列表集合中。
根据本发明的又一个方面,提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行智能过滤的控件布局方法。
本发明提供的一种基于智能过滤的控件布局方法及系统,为原生线性布局控件设计一智能过滤控件,通过智能过滤控件对需要显示的子控件进行筛选,使得原生线性布局控件中摆放的子控件都能够完整显示,也能够充分地利用原生线性布局控件的空间。
附图说明
图1为本发明一个实施例的智能过滤的控件布局方法流程图;
图2为本发明一个实施例的智能过滤的控件布局系统连接框图;
图3为本发明另一个实施例的智能过滤的控件布局系统连接框图;
图4为本发明一个实施例的电子设备连接框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,提供了本发明一个实施例的基于智能过滤的控件布局方法,该方法包括:将需要显示的所有子控件添加到智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
在许多应用场合,都需要对各种控件的显示,此时需要在原生线性布局控件中绘制这些子控件,通过原生线性布局控件将这个子控件布局好,方可显示。在原生线性布局控件中布局子控件时,原生线性布局控件的布局界面区域范围是有限的,如果单个子控件太大或者子控件的数量太多,则子控件在原生线性布局控件中无法完整显示,而如果原生线性布局控件中的子空间的数量很少,则原生线性布局控件的整个布局界面控件会有大量剩余的空间,比较浪费。针对这个问题,本实施例提出了一种方法,能够对需要在原生线性布局控件中布局的子控件的大小进行过滤,避免子控件由于超出线性布局控件而显示不全或者,线性布局控件的空间剩余。
本实施例设计了一智能过滤控件,该智能过滤控件继承原生线性布局控件,由于继承关系,智能过滤控件继承原生线性布局控件的功能之外,还可以对其它的一些功能进行扩展,在此,就是在智能过滤控件中扩展对需要显示的子控件的过滤功能。
设计好了智能过滤控件后,将需要显示的所有的子控件都添加到智能过滤控件中,并将每一个子控件按照一定的布局摆放方向进行顺序摆放,在摆放的过程中,有可能摆放了若干个子控件后,智能过滤控件的布局界面就已满,那么后面还没有摆放的子控件就没有摆放空间了,此时,智能过滤控件会将后续还没有摆放的子控件丢弃,将摆放进来的子控件保留,达到了对子控件过滤的效果。对于符合过滤条件的子控件,在原生线性布局控件中按照设置的布局方向绘制所有符合条件的子控件进行显示。
本实施例通过设计智能过滤控件,对需要在原生线性布局控件中绘制布局的子控件进行过滤,筛选出满足条件的子控件,然后再在原生线性布局控件中绘制这些满足条件的子控件进行显示,不会出现子控件显示不完整的情况或者原生线性布局控件的界面布局空间剩余的问题,既能将所有的子控件完整显示,又能充分利用原生线性布局控件的空间。
在上述实施例的基础上,本发明的一个实施例中,还包括:获取所述智能过滤控件的宽高;以及,所述将需要显示的所有子控件添加到所述智能过滤控件中之后还包括:获取每一个子控件的宽高。
在设计了智能过滤控件后,由于智能过滤控件是继承于原生线性布局控件的,因此,智能过滤控件的大小就是原生线性布局控件的大小。设计完智能过滤控件,获取智能过滤控件的宽高,以及在将需要显示的子控件都添加到智能过滤控件中后,获取每一个子控件的宽高,以供后续过滤使用。
在上述各实施例的基础上,本发明的另一个实施例中,所述布局方向包括竖向布局方向和横向布局方向。
子控件在布局界面中布局摆放时,通常是按照一定的规律摆放,使得布局界面中的子控件看起来是整齐的,通常的布局方向是竖向摆放或者横向摆放。竖向摆放即是在竖直方向上从上到下或者从下到上对每一个子控件进行摆放,横向摆放即是在横向方向上从左到右或者从右到左的方向摆放。
在上述各实施例的基础上,本发明的一个实施例中,当所述布局方向为竖向布局方向时,所述对每一个子控件进行筛选具体包括:将每一个子控件按照竖向方向在所述智能过滤控件中逐一顺序摆放;判断当前子控件是否满足第一预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;其中,所述第一预设条件是指当前子控件与其前面摆放的所有子控件的累加高度不超过所述智能过滤控件的高度,以及当前子控件的宽度不超过所述智能过滤控件的宽度。
在对子控件进行过滤的过程中,当智能过滤控件设置的布局方向为竖向布局方向时,将每一个子控件按照竖向方向进行逐一的排列摆放,每摆放一个子控件时,就判断当前子控件是否满足第一预设条件,其中的第一预设条件是指当前子控件的累加高度不能超过智能过滤控件的高度,以及当前子控件的宽度不能超过智能过滤控件的宽,当前子控件的累加高度是指当前子控件的高度和已经摆放的所有子控件的高度之和不能超过智能过滤控件的高度。其中,如果到当前子控件为止,所有子控件的高度之和超过智能过滤控件的高度,则当前子控件会超出智能过滤控件的界面布局空间,那么当前子控件会无法完整显示,而对于当前子控件,如果当前子控件的宽度比整个智能过滤控件的宽度还要大,那么当前子控件在智能过滤控件中也无法完整显示。因此,本实施例中,智能过滤控件将不满足第一预设条件的子控件丢弃,将满足第一预设条件的子控件保留下来。
在上述各实施例的基础上,本发明的另一个实施例中,当所述布局方向为横向布局方向时,所述对每一个子控件进行筛选具体包括:将每一个子控件按照横向布局方向在所述智能过滤控件中逐一顺序摆放;判断当前子控件是否满足第二预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;其中,所述第二预设条件是指当前子控件与其前面摆放的所有子控件的累加宽度不超过所述智能过滤控件的宽度,以及当前子控件的高度不超过所述智能过滤控件的高度。
当智能过滤控件设置的布局方向为横向布局方向时,将每一个子控件按照横向方向进行逐一的排列摆放,每摆放一个子控件时,就判断当前子控件是否满足第二预设条件,其中的第二预设条件是指当前子控件的累加宽度不能超过智能过滤控件的宽度,以及当前子控件的高度不能超过智能过滤控件的高度,当前子控件的累加宽度是指当前子控件的宽度和已经摆放的所有子控件的宽度之和不能超过智能过滤控件的宽度。其中,如果到当前子控件为止,所有子控件的宽度之和超过智能过滤控件的宽度,则当前子控件会超出智能过滤控件的界面布局空间,那么当前子控件会无法完整显示,而对于当前子控件,如果当前子控件的高度比整个智能过滤控件的高度还要大,那么当前子控件在智能过滤控件中也无法完整显示。因此,本实施例中,智能过滤控件将不满足第二预设条件的子控件丢弃,将满足第一预设条件的子控件保留下来。
在上述各实施例的基础上,本发明的一个实施例中,在所述智能过滤控件中设置一线性对象,在线性对象中设置一列表集合;将保留下来的所有的子控件存储于线性对象的列表集合中。
其中,在设计了智能过滤控件,还在智能过滤控件中设置一线性对象,并在线性对象中设置一列表集合,将经过智能过滤控件过滤后保留下来的所有的子控件存储于线性对象的列表集合中,以便后续绘制时使用。
在上述各实施例的基础上,本发明的另一个实施例中,所述在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件:遍历所述线性对象的列表集合中的每一个子控件,按照所述智能过滤控件设置的布局方向,对每一个子控件在相应的摆放位置进行绘制。
当通过智能过滤控件将需要显示的子控件过滤后,在原生线性布局控件中绘制符合条件的子控件,在具体绘制子控件时,遍历线性对象中的列表集合中的每一个子控件,按照设置的布局方向,在每一个子控件相应的摆放位置,对子控件进行绘制显示,至此完成了对每一个子控件的过滤和布局。
下面以一个具体的实现来说明本发明的方法,首先创建一智能过滤控件,并且调用addView()方法将所有需要显示的子控件添加进来。重写OnLayout()方法,在该方法中调用getMeasuredWidth()方法获取智能过滤控件的宽度width和调用getMeasuredHeight()方法获取智能过滤控件的高度Height。在智能过滤控件中设置一线性对象,该线性对象中有一列表集合,是用来存放满足条件的子控件的。
调用getChildCount()获取添加进来的所有子控件,遍历所有子控件,对每一个子控件进行过滤处理,如果智能过滤控件设置的布局方向为竖向布局方向,则判断当前子控件的高度和所有已经摆放的子控件的高度之和是否超出智能过滤控件的高度,以及判断当前子控件的宽度是否超出智能过滤控件的宽度,如果两个判断结果均为否,则保留当前子控件,否则,丢弃当前子控件,将保留下来的控件都添加存储到线性对象的列表集合中。同样的,如果智能过滤控件设置的布局方向为横向布局方向,则判断当前子控件的宽度和所有已经摆放的子控件的宽度之和是否超出智能过滤控件的宽度,以及判断当前子控件的高度是否超出智能过滤控件的高度,如果两个判断结果均为否,则保留当前子控件,否则,丢弃当前子控件,将保留下来的控件都添加存储到线性对象的列表集合中。
对于线性对象的列表集合中的所有的子控件,在原生线性布局控件中进行绘制,在绘制的过程中,遍历线性对象的列表集合,将每个满足条件的子控件通过调用layout()摆放在原生线性布局控件中应该摆放的位置。layout()方法需要传入4个参数,分别是子空间的left,top,right,bottom,第一个子控件的left为0,top为0,right为当前子控件的宽度,bottom为当前子控件的高度,除第一个子控件外,其余的子控件的4个参数如下。
如果智能过滤控件设置的布局方向为竖向布局方向,,则第二个子控件的left为0,top为第一个子控件的bottom,right为当前子控件的宽度,bottom为当前子控件的高度+第一个子控件的bottom,依次类推,后一个的子控件的left为0,top为前一个子控件的bottom,right为当前子控件的宽度,bottom为当前子控件的高度+前一个子控件的bottom,直到遍历结束。
如果给智能过滤控件设置的布局方向为横向布局方向,则第二个子控件的left为第一个子控件的right,top为0,right为当前子控件的宽度+第一个子控件的right,bottom为当前子控件的高度,依次类推,后一个的子控件的left为前一个子控件的right,top为0,right为当前子控件的宽度+前一个子控件的right,bottom为当前子控件的高度,直到遍历结束。
参见图2,提供了本发明一个实施例的基于智能过滤的控件布局系统,包括添加模块21、筛选模块22和绘制模块23。
添加模块21,用于将需要显示的所有子控件添加到所述智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件。
筛选模块22,用于对每一个子控件进行筛选,所述筛选为将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留。
绘制模块23,用于在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
参见图3,提供了本发明一个实施例的基于智能过滤的控件布局系统,包括、添加模块21、筛选模块22、绘制模块23、获取模块24、设置模块25和存储模块26。
添加模块21,用于将需要显示的所有子控件添加到所述智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件。
筛选模块22,用于对每一个子控件进行筛选,所述筛选为将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留。
绘制模块23,用于在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
获取模块24,用于获取所述智能过滤控件的宽高以及获取每一个子控件的宽高。
当所述布局方向为竖向布局方向时,筛选模块22,具体用于将每一个子控件按照竖向方向在所述智能过滤控件中逐一顺序摆放;判断当前子控件是否满足第一预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;其中,所述第一预设条件是指当前子控件的累加高度不超过所述智能过滤控件的高度,以及当前子控件的宽度不超过所述智能过滤控件的宽度,所述当前子控件的累加高度是指当前子控件的高度与其前面摆放的所有子控件的高度之和。
当所述布局方向为横向布局方向时,所述筛选模块22,具体用于将每一个子控件按照横向布局方向在所述智能过滤控件中逐一顺序摆放;判断当前子控件是否满足第二预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;其中,所述第二预设条件是指当前子控件的累加宽度不超过所述智能过滤控件的宽度,以及当前子控件的高度不超过所述智能过滤控件的高度,所述当前子控件的累加宽度是指当前子控件的宽度与其前面摆放的所有子控件的宽度之和。
设置模块25,用于在所述智能过滤控件中设置一线性对象,以及在线性对象中设置一列表集合;存储模块26,用于将保留下来的所有的子控件存储于线性对象的列表集合中。
绘制模块23,具体用于遍历所述线性对象的列表集合中的每一个子控件,按照所述智能过滤控件设置的布局方向,对每一个子控件在相应的摆放位置进行绘制。
参见图4,为本发明一种电子设备,包括:处理器(processor)401、存储器(memory)402和总线403;其中,所述处理器401和存储器402通过所述总线403完成相互间的通信。
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:将需要显示的所有子控件添加到所述智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,所述智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,所述筛选为将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
本发明公开一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述对应实施例所提供的智能过滤的控件布局方法,例如包括:将需要显示的所有子控件添加到所述智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,所述智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,所述筛选为将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
本发明还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述对应实施例所提供的智能过滤的控件布局方法,例如包括:将需要显示的所有子控件添加到所述智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,所述智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,所述筛选为将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的智能过滤的控件布局方法的设备等实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。
本发明提供的一种基于智能过滤的控件布局方法,为原生线性布局控件设计一智能过滤控件,通过智能过滤控件对需要显示的子控件进行筛选,使得原生线性布局控件中摆放的子控件都能够完整显示,也能够充分地利用原生线性布局控件的空间。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于智能过滤的控件布局方法,其特征在于,包括:
将需要显示的所有子控件添加到智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;
对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;
在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
2.如权利要求1所述的一种基于智能过滤的控件布局方法,其特征在于,还包括:
获取所述智能过滤控件的宽高;
以及,所述将需要显示的所有子控件添加到所述智能过滤控件中之后还包括:
获取每一个子控件的宽高。
3.如权利要求2所述的一种基于智能过滤的控件布局方法,其特征在于,所述布局方向包括竖向布局方向和横向布局方向。
4.如权利要求3所述的一种基于智能过滤的控件布局方法,其特征在于,当所述布局方向为竖向布局方向时,所述对每一个子控件进行筛选具体包括:
将每一个子控件按照竖向方向在所述智能过滤控件中逐一顺序摆放;
判断当前子控件是否满足第一预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;
其中,所述第一预设条件是指当前子控件与其前面摆放的所有子控件的累加高度不超过所述智能过滤控件的高度,以及当前子控件的宽度不超过所述智能过滤控件的宽度。
5.如权利要求3所述的一种基于智能过滤的控件布局方法,其特征在于,当所述布局方向为横向布局方向时,所述对每一个子控件进行筛选具体包括:
将每一个子控件按照横向布局方向在所述智能过滤控件中逐一顺序摆放;
判断当前子控件是否满足第二预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;
其中,所述第二预设条件是指当前子控件与其前面摆放的所有子控件的累加宽度不超过所述智能过滤控件的宽度,以及当前子控件的高度不超过所述智能过滤控件的高度。
6.如权利要求1-5任一项所述的一种基于智能过滤的控件布局方法,其特征在于,还包括:
在所述智能过滤控件中设置一线性对象,以及在线性对象中设置一列表集合;
将保留下来的所有的子控件存储于线性对象的列表集合中。
7.如权利要求6所述的一种基于智能过滤的控件布局方法,其特征在于,所述在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件具体包括:
遍历所述线性对象的列表集合中的每一个子控件,按照所述智能过滤控件设置的布局方向,对每一个子控件在相应的摆放位置进行绘制。
8.一种基于智能过滤的控件布局系统,其特征在于,包括:
添加模块,用于将需要显示的所有子控件添加到所述智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;
筛选模块,用于对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;
绘制模块,用于在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。
9.如权利要求8所述的基于智能过滤的控件布局系统,其特征在于,还包括:
设置模块,用于在所述智能过滤控件中设置一线性对象,以及在线性对象中设置一列表集合;
存储模块,用于将保留下来的所有的子控件存储于线性对象的列表集合中。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002494.5A CN108363571B (zh) | 2018-01-02 | 2018-01-02 | 一种基于智能过滤的控件布局方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002494.5A CN108363571B (zh) | 2018-01-02 | 2018-01-02 | 一种基于智能过滤的控件布局方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108363571A true CN108363571A (zh) | 2018-08-03 |
CN108363571B CN108363571B (zh) | 2022-02-18 |
Family
ID=63011021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810002494.5A Active CN108363571B (zh) | 2018-01-02 | 2018-01-02 | 一种基于智能过滤的控件布局方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108363571B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165070A (zh) * | 2018-08-17 | 2019-01-08 | 广州优视网络科技有限公司 | 视图处理方法、装置、及电子设备 |
CN109710121A (zh) * | 2019-01-10 | 2019-05-03 | 环球雅途集团有限公司 | 一种自适应屏幕尺寸的排版显示方法 |
CN113778360A (zh) * | 2021-08-20 | 2021-12-10 | 荣耀终端有限公司 | 投屏方法和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130047071A (ko) * | 2011-10-31 | 2013-05-08 | 삼성에스디에스 주식회사 | 모바일용 혼합현실 어플리케이션 개발 장치 및 그 방법 |
CN104461892A (zh) * | 2014-12-15 | 2015-03-25 | 北京国双科技有限公司 | 自定义控件获取方法和装置 |
CN107122104A (zh) * | 2017-03-29 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 数据显示方法及装置 |
-
2018
- 2018-01-02 CN CN201810002494.5A patent/CN108363571B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130047071A (ko) * | 2011-10-31 | 2013-05-08 | 삼성에스디에스 주식회사 | 모바일용 혼합현실 어플리케이션 개발 장치 및 그 방법 |
CN104461892A (zh) * | 2014-12-15 | 2015-03-25 | 北京国双科技有限公司 | 自定义控件获取方法和装置 |
CN107122104A (zh) * | 2017-03-29 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 数据显示方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165070A (zh) * | 2018-08-17 | 2019-01-08 | 广州优视网络科技有限公司 | 视图处理方法、装置、及电子设备 |
CN109710121A (zh) * | 2019-01-10 | 2019-05-03 | 环球雅途集团有限公司 | 一种自适应屏幕尺寸的排版显示方法 |
CN109710121B (zh) * | 2019-01-10 | 2020-07-03 | 环球雅途集团有限公司 | 一种自适应屏幕尺寸的排版显示方法 |
CN113778360A (zh) * | 2021-08-20 | 2021-12-10 | 荣耀终端有限公司 | 投屏方法和电子设备 |
CN113778360B (zh) * | 2021-08-20 | 2022-07-22 | 荣耀终端有限公司 | 投屏方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108363571B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105204927B (zh) | 用于终端设备的应用排列装置及应用排列方法 | |
CN108363571A (zh) | 一种基于智能过滤的控件布局方法及系统 | |
CN104021160B (zh) | 一种客户端数据清理方法和装置 | |
CN103970400B (zh) | 处理停靠栏的方法及装置 | |
DE102007001147A1 (de) | Tragbare elektronische Vorrichtung und Verfahren zum Laden von Ressourcendaten der elektronischen Vorrichtung | |
CN106406667A (zh) | 一种应用程序图标在桌面壁纸上的设置方法及装置 | |
DE102017110567A1 (de) | Kontaktplanprogrammanalysevorrichtung | |
WO2014079601A1 (de) | Optimieren von rüstfamilien | |
CN106354366A (zh) | 桌面图标排列处理方法及装置 | |
CN110058756A (zh) | 一种图像样本的标注方法及装置 | |
CN107066258A (zh) | 一种页面标识图像更新方法及系统 | |
CN109448058A (zh) | 装载位置三维坐标获取方法、系统及图像识别设备 | |
CN109213481A (zh) | 一种滑动条控件实现方法及装置 | |
CN109582410A (zh) | 截图方法、装置、设备及计算机可读存储介质 | |
CN109857706A (zh) | 基于数据更新的图片清理方法、装置及终端设备 | |
CN111111210A (zh) | 一种网络游戏的物品整理方法和装置 | |
EP3369854A1 (de) | System | |
CN110109667A (zh) | 一种ui界面绘制校验方法、装置、终端及计算机存储介质 | |
CN103294542B (zh) | 进程保护的方法及其装置 | |
CN109474758A (zh) | 一种处理方法及装置 | |
DE102015221517A1 (de) | Bedienmodul zum Bedienen einer Maschine in der Lebensmittelindustrie | |
WO2009100913A1 (de) | Verfahren und vorrichtung zur textattribuierung in textgrafiken | |
CN114510172A (zh) | 一种电子标牌显示的方法及电子设备 | |
CN107886274A (zh) | 一种多工种间物料流转管理方法及管理系统 | |
EP3508928A1 (de) | Verfahren zum verarbeiten von alarmen in einem prozessleitsystem sowie operator-system |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240117 Address after: Room 8434, Building 3, No. 3 Xijing Road, Badachu High tech Park, Shijingshan District, Beijing, 100000 Patentee after: Beijing Jinxin Ruitong Technology Co.,Ltd. Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |