一种基于智能过滤的控件布局方法及系统技术方案

技术编号:18591444 阅读:26 留言:0更新日期:2018-08-04 19:57
本发明专利技术提供一种基于智能过滤的控件布局方法及系统,所述的方法包括:将需要显示的所有子控件添加到所述智能过滤控件中,并按照智能过滤控件设置的布局方向,将每一个子控件按布局方向顺序摆放,其中,智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照布局方向绘制保留下来的所有的子控件。本发明专利技术为原生线性布局控件设计一智能过滤控件,通过智能过滤控件对需要显示的子控件进行筛选,使得原生线性布局控件中摆放的子控件都能够完整显示,也能够充分地利用原生线性布局控件的空间。

A method and system of control layout based on Intelligent filtering

The invention provides a control layout method and system based on Intelligent filtering. The method includes: adding all the child controls that need to be displayed to the intelligent filter control, and placing each child control in the direction of layout according to the layout direction of the intelligent filter control, which is an intelligent filter control. Inherit primary linear layout controls; filter each child control. Filtering refers to discarding the subcontrols that are beyond the area of the intelligent filter control and other reservations, and drawing all the reserved subsets in the primary linear layout control in accordance with the layout direction. This invention designs an intelligent filter control for the primary linear layout control. Through the intelligent filter control, the child controls that need to be displayed can be screened, so that the sub controls placed in the primary linear layout control can be fully displayed and can fully utilize the space of the primary linear layout control.

【技术实现步骤摘要】
一种基于智能过滤的控件布局方法及系统
本专利技术涉及控件布局
,更具体地,涉及一种基于智能过滤的控件布局方法及系统。
技术介绍
在很多应用场合,都需要对子控件进行显示,比如,在直播领域,对每一个主播标签在一行或者一列进行显示,主播标签可以作为一个子控件由于每个主播标签的字数不一样,字体大小也不一样,体现为主播标签形成的子控件的高度和宽度也不一样,如果字数少的主播标签一行能放多个,字数多的主播标签一行也许只能放一个。所有的主播标签需要显示,需要将所有的主播标签作为子控件绘制摆放于原生线性布局控件中,如果给原生线性布局控件添加的标签过多,会出现标签被截断的问题,如果给原生线性布局控件添加的标签过少,原生线性布局控件的布局界面会出现多出的空白区域。
技术实现思路
本专利技术提供一种克服上述问题或者至少部分地解决上述问题的一种基于智能过滤的控件布局方法及系统。根据本专利技术的一个方面,提供一种基于智能过滤的控件布局方法,包括:将需要显示的所有子控件添加到智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。在上述技术方案的基础上,本专利技术还可以作如下改进。进一步的,还包括:获取所述智能过滤控件的宽高;以及,所述将需要显示的所有子控件添加到所述智能过滤控件中之后还包括:获取每一个子控件的宽高。进一步的,所述布局方向包括竖向布局方向和横向布局方向。进一步的,当所述布局方向为竖向布局方向时,所述对每一个子控件进行筛选具体包括:将每一个子控件按照竖向方向在所述智能过滤控件中逐一顺序摆放;判断当前子控件是否满足第一预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;其中,所述第一预设条件是指当前子控件与其前面摆放的所有子控件的累加高度不超过所述智能过滤控件的高度,以及当前子控件的宽度不超过所述智能过滤控件的宽度。进一步的,当所述布局方向为横向布局方向时,所述对每一个子控件进行筛选具体包括:将每一个子控件按照横向布局方向在所述智能过滤控件中逐一顺序摆放;判断当前子控件是否满足第二预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;其中,所述第二预设条件是指当前子控件与其前面摆放的所有子控件的累加宽度不超过所述智能过滤控件的宽度,以及当前子控件的高度不超过所述智能过滤控件的高度。进一步的,还包括:在所述智能过滤控件中设置一线性对象,以及在线性对象中设置一列表集合;将保留下来的所有的子控件存储于线性对象的列表集合中。进一步的,所述在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件:遍历所述线性对象的列表集合中的每一个子控件,按照所述智能过滤控件设置的布局方向,对每一个子控件在相应的摆放位置进行绘制。根据本专利技术的另一个方面,提供了一种智能过滤的控件布局系统,包括:添加模块,用于将需要显示的所有子控件添加到所述智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;筛选模块,用于对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;绘制模块,用于在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。进一步的,还包括:设置模块,用于在所述智能过滤控件中设置一线性对象,以及在线性对象中设置一列表集合;存储模块,用于将保留下来的所有的子控件存储于线性对象的列表集合中。根据本专利技术的又一个方面,提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行智能过滤的控件布局方法。本专利技术提供的一种基于智能过滤的控件布局方法及系统,为原生线性布局控件设计一智能过滤控件,通过智能过滤控件对需要显示的子控件进行筛选,使得原生线性布局控件中摆放的子控件都能够完整显示,也能够充分地利用原生线性布局控件的空间。附图说明图1为本专利技术一个实施例的智能过滤的控件布局方法流程图;图2为本专利技术一个实施例的智能过滤的控件布局系统连接框图;图3为本专利技术另一个实施例的智能过滤的控件布局系统连接框图;图4为本专利技术一个实施例的电子设备连接框图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。参见图1,提供了本专利技术一个实施例的基于智能过滤的控件布局方法,该方法包括:将需要显示的所有子控件添加到智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。在许多应用场合,都需要对各种控件的显示,此时需要在原生线性布局控件中绘制这些子控件,通过原生线性布局控件将这个子控件布局好,方可显示。在原生线性布局控件中布局子控件时,原生线性布局控件的布局界面区域范围是有限的,如果单个子控件太大或者子控件的数量太多,则子控件在原生线性布局控件中无法完整显示,而如果原生线性布局控件中的子空间的数量很少,则原生线性布局控件的整个布局界面控件会有大量剩余的空间,比较浪费。针对这个问题,本实施例提出了一种方法,能够对需要在原生线性布局控件中布局的子控件的大小进行过滤,避免子控件由于超出线性布局控件而显示不全或者,线性布局控件的空间剩余。本实施例设计了一智能过滤控件,该智能过滤控件继承原生线性布局控件,由于继承关系,智能过滤控件继承原生线性布局控件的功能之外,还可以对其它的一些功能进行扩展,在此,就是在智能过滤控件中扩展对需要显示的子控件的过滤功能。设计好了智能过滤控件后,将需要显示的所有的子控件都添加到智能过滤控件中,并将每一个子控件按照一定的布局摆放方向进行顺序摆放,在摆放的过程中,有可能摆放了若干个子控件后,智能过滤控件的布局界面就已满,那么后面还没有摆放的子控件就没有摆放空间了,此时,智能过滤控件会将后续还没有摆放的子控件丢弃,将摆放进来的子控件保留,达到了对子控件过滤的效果。对于符合过滤条件的子控件,在原生线性布局控件中按照设置的布局方向绘制所有符合条件的子控件进行显示。本实施例通过设计智能过滤控件,对需要在原生线性布局控件中绘制布局的子控件进行过滤,筛选出满足条件的子控件,然后再在原生线性布局控件中绘制这些满足条件的子控件进行显示,不会出现子控件显示不完整的情况或者原生线性布局控件的界面布局空间剩余的问题,既能将所有的子控件完整显示,又能充分利用原生线性布局控件的空间。在上述实施例的基础上,本专利技术的一个实施例中,还包括:获取所述智能过滤控件的宽高;以及,所述将需要显示的所有子控件添加到所述智能过滤控件中之后还包括:获取每一个子控件的宽高。在设计了智能过滤控件后,由于智能过滤控件是继承于原生线性布局控件的,因此,智能过滤控件的大小就本文档来自技高网...

【技术保护点】
1.一种基于智能过滤的控件布局方法,其特征在于,包括:将需要显示的所有子控件添加到智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。

【技术特征摘要】
1.一种基于智能过滤的控件布局方法,其特征在于,包括:将需要显示的所有子控件添加到智能过滤控件中,并按照所述智能过滤控件设置的布局方向,将每一个子控件按所述布局方向顺序摆放,其中,所述智能过滤控件继承原生线性布局控件;对每一个子控件进行筛选,所述筛选是指将超出所述智能过滤控件所在区域范围的子控件丢弃,其它的保留;在原生线性布局控件中按照所述布局方向绘制保留下来的所有的子控件。2.如权利要求1所述的一种基于智能过滤的控件布局方法,其特征在于,还包括:获取所述智能过滤控件的宽高;以及,所述将需要显示的所有子控件添加到所述智能过滤控件中之后还包括:获取每一个子控件的宽高。3.如权利要求2所述的一种基于智能过滤的控件布局方法,其特征在于,所述布局方向包括竖向布局方向和横向布局方向。4.如权利要求3所述的一种基于智能过滤的控件布局方法,其特征在于,当所述布局方向为竖向布局方向时,所述对每一个子控件进行筛选具体包括:将每一个子控件按照竖向方向在所述智能过滤控件中逐一顺序摆放;判断当前子控件是否满足第一预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;其中,所述第一预设条件是指当前子控件与其前面摆放的所有子控件的累加高度不超过所述智能过滤控件的高度,以及当前子控件的宽度不超过所述智能过滤控件的宽度。5.如权利要求3所述的一种基于智能过滤的控件布局方法,其特征在于,当所述布局方向为横向布局方向时,所述对每一个子控件进行筛选具体包括:将每一个子控件按照横向布局方向在所述智能过滤控件中逐一顺序摆放;判断当前子控件是否满足第二预设条件,若是,则保留当前子控件,否则,则丢弃当前子控件;其中,所述...

【专利技术属性】
技术研发人员:陈娇陈少杰张文明
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1