CN110007915A - 一种自适应子控件的线性布局方法及装置 - Google Patents

一种自适应子控件的线性布局方法及装置 Download PDF

Info

Publication number
CN110007915A
CN110007915A CN201810007869.7A CN201810007869A CN110007915A CN 110007915 A CN110007915 A CN 110007915A CN 201810007869 A CN201810007869 A CN 201810007869A CN 110007915 A CN110007915 A CN 110007915A
Authority
CN
China
Prior art keywords
control
added
father
child
height
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
Application number
CN201810007869.7A
Other languages
English (en)
Other versions
CN110007915B (zh
Inventor
陈娇
陈少杰
张文明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810007869.7A priority Critical patent/CN110007915B/zh
Publication of CN110007915A publication Critical patent/CN110007915A/zh
Application granted granted Critical
Publication of CN110007915B publication Critical patent/CN110007915B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Abstract

本发明提供一种自适应子控件的线性布局方法及装置,方法包括:获取父控件对应的待添加子控件,将待添加子控件依次存储在第一有序集合中;对于第一有序集合中的任一待添加子控件,依次获取任一待添加子控件的宽度和高度,结合父控件的布局方向,根据父控件中已添加子控件的高度总和及父控件的高度调整任一待添加子控件的高度,并根据父控件的宽度调整任一待添加子控件的宽度;当调整后的任一待添加子控件的高度和宽度均不为零时,将调整后的任一待添加子控件添加至父控件中,并在父控件中显示每个已添加子控件,该方法及装置解决了Android原生控件中存在的子控件显示不全的问题,无需对完全无法显示的控件进行渲染,一定程度上节省了服务器的资源。

Description

一种自适应子控件的线性布局方法及装置
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种自适应子控件的线性布局方法及装置。
背景技术
控件是指对数据和方法的封装。控件可以有自己的属性和方法,其中属性是控件数据的简单访问者,方法则是控件的一些简单而可见的功能、控件创建过程包括设计、开发、调试工作,然后是控件的使用。设计控件是一项繁重的工作,自行开发控件与使用控件进行可视化程序开发存在着极大的不同,要求程序员精通面向对象程序设计。创建控件的最大意义在于封装重复的工作,其次是可以扩充现有控件的功能。
控件停靠的容器称之为父控件,停靠在父控件之内的叫子控件。现有的Android原生控件中,当向父控件中添加子控件时,并不能对子控件进行适应性对布局,往往会出现子控件在父控件中显示不全的问题,并不能确保子控件在父控件中显示的完整性。同时,有些添加到父控件中的子控件还可能根本无法显示,针对在父控件中根本无法显示的子控件,服务器仍然会对该子控件进行渲染,一定程度上导致了服务器资源的浪。
发明内容
本发明为了克服现有的Android原生控件中存在子控件在父控件中显示不全,且存在服务器资源浪费的问题,提供一种自适应子控件的线性布局方法及装置。
一方面,本发明提供一种自适应子控件的线性布局方法,包括:
S1,对于任一父控件,获取所述父控件对应的待添加子控件,将所述待添加子控件依次存储在第一有序集合中;
S2,遍历所述第一有序集合中存储的所述待添加子控件,对于任一待添加子控件,获取所述任一待添加子控件的宽度和高度,判断所述父控件的布局方向,当所述布局方向为竖直时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的高度总和,确定所述父控件的高度与所述高度总和的高度差值,若所述任一待添加子控件的高度大于所述高度差值,将所述任一待添加子控件的高度调整为所述高度差值,若所述任一待添加子控件的宽度大于所述父控件的宽度,将所述任一待添加子控件的宽度调整为所述父控件的宽度;
S3,当调整后的所述任一待添加子控件的高度和宽度均不为零时,将调整后的所述任一待添加子控件添加至所述第二有序集合中,获得更新后的所述第二有序集合;
S4,遍历更新后的所述第二有序集合中的已添加子控件,确定每个所述已添加子控件在所述父控件中对应的摆放位置,按照每个所述已添加子控件对应的摆放位置在所述父控件中显示每个所述已添加子控件。
优选地,所述步骤S2还包括:当所述布局方向为水平时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的宽度总和,确定所述父控件的宽度与所述宽度总和的宽度差值,若所述任一待添加子控件的宽度大于所述宽度差值,将所述任一待添加子控件的宽度调整为所述宽度差值,若所述任一待添加子控件的高度大于所述父控件的高度,将所述任一待添加子控件的高度调整为所述父控件的高度。
优选地,所述步骤S2还包括:当所述布局方向为竖直时,若所述任一待添加子控件的高度不大于所述高度差值,且所述任一待添加子控件的宽度不大于所述父控件的宽度,将所述任一待添加子控件添加至所述第二有序集合中。
优选地,所述步骤S2还包括:当所述布局方向为水平时,若所述任一待添加子控件的宽度不大于所述宽度差值,且所述任一待添加子控件的高度不大于所述父控件的高度,将所述任一待添加子控件添加至所述第二有序集合中。
优选地,初始状态下,所述第二有序集合中的已添加控件的个数为零。
优选地,所述步骤S2之前还包括:调用Android原生控件中的onLayout方法获取所述父控件的高度和宽度。
优选地,步骤S4中所述确定每个所述已添加子控件在所述父控件中对应的的摆放位置进一步包括:调用Android原生控件中的layout方法确定每个所述已添加子控件在所述父控件中对应的的摆放位置。
一方面,本发明提供一种自适应子控件的线性布局装置,包括:
控件获取单元,用于对于任一父控件,获取所述父控件对应的待添加子控件,将所述待添加子控件依次存储在第一有序集合中;
控件调整单元,用于遍历所述第一有序集合中存储的所述待添加子控件,对于任一待添加子控件,获取所述任一待添加子控件的宽度和高度,判断所述父控件的布局方向,当所述布局方向为竖直时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的高度总和,确定所述父控件的高度与所述高度总和的高度差值,若所述任一待添加子控件的高度大于所述高度差值,将所述任一待添加子控件的高度调整为所述高度差值,若所述任一待添加子控件的宽度大于所述父控件的宽度,将所述任一待添加子控件的宽度调整为所述父控件的宽度;
控件添加单元,用于当调整后的所述任一待添加子控件的高度和宽度均不为零时,将调整后的所述任一待添加子控件添加至所述第二有序集合中,获得更新后的所述第二有序集合;
控件排列显示单元,用于遍历更新后的所述第二有序集合中的已添加子控件,确定每个所述已添加子控件在所述父控件中对应的摆放位置,按照每个所述已添加子控件对应的摆放位置在所述父控件中显示每个所述已添加子控件。
优选地,所述控件调整单元还用于:当所述布局方向为水平时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的宽度总和,确定所述父控件的宽度与所述宽度总和的宽度差值,若所述任一待添加子控件的宽度大于所述宽度差值,将所述任一待添加子控件的宽度调整为所述宽度差值,若所述任一待添加子控件的高度大于所述父控件的高度,将所述任一待添加子控件的高度调整为所述父控件的高度。
一方面,本发明提供一种自适应子控件的线性布局方法的设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行所述自适应子控件的线性布局方法。
本发明提供的一种自适应子控件的线性布局方法及装置,当向父控件中添加子控件时,首先将待添加子控件进行顺序存储,并按照存储顺序,依次获取待添加子控件的宽度和高度,同时判断父控件中子控件的布局方向,再结合布局方向及父控件的高度和宽度,依次将待添加子控件的高度和宽度调整在父控件的范围内;解决了Android原生控件中存在的子控件显示不全的问题,同时,当父控件的布局方向为竖直时,若父控件中子控件的高度总和已达到父控件的高度,则其他待添加的子控件的高度均调整为零,且无法添加至父控件中,进一步避免了Android原生控件中存在的子控件完全无法显示的问题,无需对完全无法显示的控件进行渲染,一定程度上节省了服务器的资源。
附图说明
图1为本发明实施例的一种自适应子控件的线性布局方法的整体流程示意图;
图2为本发明实施例的一种自适应子控件的线性布局装置的整体结构示意图;
图3为本发明实施例一种自适应子控件的线性布局方法的设备的结构框架示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1为本发明实施例的一种自适应子控件的线性布局方法的整体流程示意图,如图1所示,本发明提供一种自适应子控件的线性布局方法,包括:
S1,对于任一父控件,获取所述父控件对应的待添加子控件,将所述待添加子控件依次存储在第一有序集合中;
S2,遍历所述第一有序集合中存储的所述待添加子控件,对于任一待添加子控件,获取所述任一待添加子控件的宽度和高度,判断所述父控件的布局方向,当所述布局方向为竖直时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的高度总和,确定所述父控件的高度与所述高度总和的高度差值,若所述任一待添加子控件的高度大于所述高度差值,将所述任一待添加子控件的高度调整为所述高度差值,若所述任一待添加子控件的宽度大于所述父控件的宽度,将所述任一待添加子控件的宽度调整为所述父控件的宽度;
S3,当调整后的所述任一待添加子控件的高度和宽度均不为零时,将调整后的所述任一待添加子控件添加至所述第二有序集合中,获得更新后的所述第二有序集合;
S4,遍历更新后的所述第二有序集合中的已添加子控件,确定每个所述已添加子控件在所述父控件中对应的摆放位置,按照每个所述已添加子控件对应的摆放位置在所述父控件中显示每个所述已添加子控件。
具体地,本发明提供的一种自适应子控件的线性布局方法在继承Android原生线性布局控件LinearLayout的基础上扩展了自适应子控件的功能,当向父控件添加子控件时,能够适应性地调整子控件的大小,以确保子控件显示在父控件的范围内,避免子控件显示不全的问题,具体实现如下:
首先创建父控件,对于创建的任一父控件,当向父控件中添加子控件时,首先获取对应的待添加子控件,并将待添加子控件按照顺序依次存储在第一有序集合中。在实际应用中,可以通过调用Android原生线性布局控件LinearLayout中的addView方法获取对应的待添加子控件,同时第一有序集合可以为list集合,也可以为其他有序集合,可以根据实际需求进行设置,此处不做具体限定。
进一步地,从上述第一有序集合中获取所有待添加子控件,并依次遍历所有待添加子控件,对于任一待添加子控件,获取任一待添加子控件的宽度和高度。具体地,可以通过调用Android原生线性布局控件LinearLayout中的getChildCount从第一有序集合中获取所有待添加子控件,对于所有待添加子控件中的任一待添加子控件,在onLayout方法中调用getMeasuredWidth方法获取任一待添加子控件的宽度,同时调用getMeasuredHeight方法获取任一待添加子控件的高度。
进一步地,判断父控件对应的布局方向,即确定父控件中子控件的布局方向,当父控件对应的布局方向为竖直时,获取父控件对应的第二有序集合,第二有序集合中存储了父控件中当前已添加的子控件,从第二有序集合中获取当前父控件中已添加子控件的高度总和,并获取父控件的高度,进而确定父控件高度与已添加子控件的高度总和的高度差值。对于第一有序集合中存储的任一待添加子控件,再判断任一待添加子控件的高度是否大于上述高度差值,当任一待添加子控件的高度大于上述高度差值时,将任一待添加子控件的高度调整为上述高度差值。同时获取父控件的宽度,判断任一待添加子控件的宽度是否大于父控件的宽度,当任一待添加子控件的宽度大于父控件的宽度时,将任一待添加子控件的宽度调整为父控件的宽度。
进一步地,对于第一有序集合中的任一待添加子控件,将任一待添加子控件进行上述高度和宽度的调整后,若调整后的任一待添加子控件的高度不为零时,将调整后的任一待添加子控件添加至第二有序集合中,即将该调整后的待添加子控件作为已添加子控件存储在第二有序集合中,进而第二有序集合得到更新,并获得更新后的第二有序集合。
进一步地,遍历更新后的第二有序集合,根据每个已添加子控件的调整后的高度和宽度,依次确定第二有序集合中的每个已添加子控件的摆放位置,并按照每个已添加子控件确定的摆放位置将每个已添加子控件在父控件中进行显示。其中,可以调用Android原生线性布局控件LinearLayout中的layout方法确定第二有序集合中的每个已添加子控件的摆放位置,并调用onDraw方法按照对应的摆放位置将每个已添加子控件进行显示。此外,上述第二有序集合可以为list集合,也可以为其他有序集合,可以根据实际需求进行设置,此处不做具体限定。
为了更好地理解上述各方法步骤,现以两个待添加子控件为例进行说明:
当需要向父控件中依次添加标签控件和按钮控件时,即获取到的待添加子控件分别为标签控件和按钮控件,并将标签控件和按钮控件按照顺序存储在第一有序集合中。遍历第一有序集合,首先获得待添加的标签控件,获取待添加的标签控件的宽度w1和高度h1,若父控件的布局方向为竖直,同时父控件中已经添加了文本框控件和图像控件,且已添加子控件中文本框控件和图像控件的高度分别为h2和h3,则已添加子控件的高度总和为h2+h3,若父控件的高度为H,则父控件的高度与上述高度总和的高度差值为H-(h2+h3)。有鉴于此,判断待添加的标签控件的高度h1是否大于上述高度差值H-(h2+h3),若h1大于H-(h2+h3),则将待添加的标签控件的高度h1调整为上述高度差值H-(h2+h3)。同时,判断待添加的标签控件的宽度w1是否大于父控件的宽度,若父控件的宽度为W,且w1大于W,则将待添加的标签控件的宽度调整为W,再将调整后的标签控件添加至父控件中。此后,继续遍历第一有序集合,获得待添加的按钮控件,获取待添加的按钮控件的宽度w4和高度h4,鉴于上述标签控件已经添加至父控件中,则已添加子控件的高度总和为上述文本框控件、图像控件和标签控件的高度总和,三个控件的高度总和为H。该高度总和及父控件的高度相同,则此时的高度差值即为0。故而,此时,待添加的按钮控件的高度h4应调整为0。同时,判断待添加的按钮控件的宽度w4是否大于父控件的宽度W,若w4大于W,则将待添加的按钮控件的宽度w4调整为W。鉴于调整后的待添加的按钮控件的高度为0,则待添加的按钮控件则不会添加至第二有序集合中。在上述步骤的基础上,更新第二有序集合,更新后的第二有序集合中已添加子控件依次为文本框控件、图像控件和标签控件,再根据三个控件的宽度和高度确定三个控件的摆放位置,最终根据摆放位置将三个控件显示在父控件中。
本发明提供的一种自适应子控件的线性布局方法,当向父控件中添加子控件时,首先将待添加子控件进行顺序存储,并按照存储顺序,依次获取待添加子控件的宽度和高度,同时判断父控件中子控件的布局方向,再结合布局方向及父控件的高度和宽度,依次将待添加子控件的高度和宽度调整在父控件的范围内;解决了Android原生控件中存在的子控件显示不全的问题,同时,当父控件的布局方向为竖直时,若父控件中子控件的高度总和已达到父控件的高度,则其他待添加的子控件的高度均调整为零,且无法添加至父控件中,进一步避免了Android原生控件中存在的子控件完全无法显示的问题,无需对完全无法显示的控件进行渲染,一定程度上节省了服务器的资源。
基于上述任一实施例,提供一种自适应子控件的线性布局方法,所述步骤S2还包括:当所述布局方向为水平时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的宽度总和,确定所述父控件的宽度与所述宽度总和的宽度差值,若所述任一待添加子控件的宽度大于所述宽度差值,将所述任一待添加子控件的宽度调整为所述宽度差值,若所述任一待添加子控件的高度大于所述父控件的高度,将所述任一待添加子控件的高度调整为所述父控件的高度。
进一步地,在上述技术方案的基础上,当父控件对应的布局方向为水平时,获取父控件对应的第二有序集合,第二有序集合中存储了父控件中当前已添加的子控件,从第二有序集合中获取当前父控件中已添加子控件的宽度总和,并获取父控件的宽度,进而确定父控件宽度与已添加子控件的宽度总和的宽度差值。对于第一有序集合中存储的任一待添加子控件,再判断任一待添加子控件的宽度是否大于上述宽度差值,当任一待添加子控件的宽度大于上述宽度差值时,将任一待添加子控件的宽度调整为上述宽度差值。同时获取父控件的高度,判断任一待添加子控件的高度是否大于父控件的高度,当任一待添加子控件的高度大于父控件的高度时,将任一待添加子控件的高度调整为父控件的高度。
本发明提供的一种自适应子控件的线性布局方法,当向父控件中添加子控件时,首先将待添加子控件进行顺序存储,并按照存储顺序,依次获取待添加子控件的宽度和高度,同时判断父控件中子控件的布局方向,再结合布局方向及父控件的高度和宽度,依次将待添加子控件的高度和宽度调整在父控件的范围内;解决了Android原生控件中存在的子控件显示不全的问题,同时,当父控件的布局方向为水平时,若父控件中子控件的宽度总和已达到父控件的宽度,则其他待添加的子控件的宽度均调整为零,且无法添加至父控件中,进一步避免了Android原生控件中存在的子控件完全无法显示的问题,无需对完全无法显示的控件进行渲染,一定程度上节省了服务器的资源。
基于上述任一实施例,提供一种自适应子控件的线性布局方法,所述步骤S2还包括:当所述布局方向为竖直时,若所述任一待添加子控件的高度不大于所述高度差值,且所述任一待添加子控件的宽度不大于所述父控件的宽度,将所述任一待添加子控件添加至所述第二有序集合中。
具体地,在上述技术方案的基础上,当父控件对应的布局方向为竖直时,获取父控件对应的第二有序集合,第二有序集合中存储了父控件中当前已添加的子控件,从第二有序集合中获取当前父控件中已添加子控件的高度总和,并获取父控件的高度,进而确定父控件高度与已添加子控件的高度总和的高度差值。对于第一有序集合中存储的任一待添加子控件,再判断任一待添加子控件的高度是否大于上述高度差值,当任一待添加子控件的高度不大于上述高度差值时,再判断任一待添加子控件的宽度是否大于父控件的宽度,当任一待添加子控件的宽度不大于父控件的宽度时,将任一待添加子控件添加至第二有序集合中。即,对于高度和宽度均不超过父控件的高度和宽度的待添加子控件,则直接将该待添加子控件添加至父控件中。
本发明提供的一种自适应子控件的线性布局方法,当向父控件中添加子控件时,首先将待添加子控件进行顺序存储,并按照存储顺序,依次获取待添加子控件的宽度和高度,同时判断父控件中子控件的布局方向,再结合布局方向及父控件的高度和宽度,依次将待添加子控件的高度和宽度调整在父控件的范围内,解决了Android原生控件中存在的子控件显示不全的问题。
基于上述任一实施例,提供一种自适应子控件的线性布局方法,所述步骤S2还包括:当所述布局方向为水平时,若所述任一待添加子控件的宽度不大于所述宽度差值,且所述任一待添加子控件的高度不大于所述父控件的高度,将所述任一待添加子控件添加至所述第二有序集合中。
具体地,在上述技术方案的基础上,当父控件对应的布局方向为水平时,获取父控件对应的第二有序集合,第二有序集合中存储了父控件中当前已添加的子控件,从第二有序集合中获取当前父控件中已添加子控件的宽度总和,并获取父控件的宽度,进而确定父控件宽度与已添加子控件的宽度总和的宽度差值。对于第一有序集合中存储的任一待添加子控件,再判断任一待添加子控件的宽度是否大于上述宽度差值,当任一待添加子控件的宽度不大于上述宽度差值时,再判断任一待添加子控件的高度是否大于父控件的高度,当任一待添加子控件的高度不大于父控件的高度时,将任一待添加子控件添加至第二有序集合中。即,对于高度和宽度均不超过父控件的高度和宽度的待添加子控件,则直接将该待添加子控件添加至父控件中。
本发明提供的一种自适应子控件的线性布局方法,当向父控件中添加子控件时,首先将待添加子控件进行顺序存储,并按照存储顺序,依次获取待添加子控件的宽度和高度,同时判断父控件中子控件的布局方向,再结合布局方向及父控件的高度和宽度,依次将待添加子控件的高度和宽度调整在父控件的范围内,解决了Android原生控件中存在的子控件显示不全的问题。
基于上述任一实施例,提供一种自适应子控件的线性布局方法,初始状态下,所述第二有序集合中的已添加控件的个数为零。
具体地,对于任一创建的父控件,在初始状态下,父控件中的已添加子控件的个数为零,即上述第二有序集合在初始状态下存储的已添加控件的个数为零。
有鉴于此,在初始状态下,当向父控件中添加子控件时,若父控件中子控件的布局方向为竖直,且待添加子控件的高度大于父控件的高度,则将待添加子控件的高度调整为父控件的高度。若父控件中子控件的布局方向为水平,且待添加子控件的宽度大于父控件的宽度,则将待添加子控件的宽度调整为父控件的宽度。
本发明提供的一种自适应子控件的线性布局方法,将父控件中已添加子控件存储在第二有序集合中,且第二有序集合在初始状态下存储的已添加子控件的个数为零,进而通过第二有序集合对父控件中的已添加子控件进行管理,同时确保第二有序集合中的已添加子空间的高度和宽度均不为零,进而确保已添加子控件均能完全显示在父控件中,解决了Android原生控件中存在的子控件显示不全的问题。
基于上述任一实施例,提供一种自适应子控件的线性布局方法,所述步骤S2之前还包括:调用Android原生控件中的onLayout方法获取所述父控件的高度和宽度。
具体地,对于任一创建的父控件,当需要向父控件中添加子控件时,则应先确定父控件的高度和宽度。本实施例中,在Android原生控件的基础上,重写onLayout方法,在onLayout方法中调用getMeasuredWidth方法获取父控件的宽度,同时调用getMeasuredHeight方法获取父控件的宽度。在此基础上,结合父控件的高度和宽度,将每个待添加子控件的高度和宽度调整在父控件的范围内。
本发明提供的一种自适应子控件的线性布局方法,当向父控件中添加子控件时,先获取父控件的高度和宽度,再结合父控件的高度和宽度,对每个待添加子控件的高度和宽度进行调整,有利于将每个待添加子控件的高度和宽度调整在父控件的范围内。
基于上述任一实施例,提供一种自适应子控件的线性布局方法,步骤S4中所述确定每个所述已添加子控件在所述父控件中对应的的摆放位置进一步包括:调用Android原生控件中的layout方法确定每个所述已添加子控件在所述父控件中对应的的摆放位置。
具体地,在上述技术方案的基础上,在获得更新后的第二有序集合后,则应根据第二有序集合中已添加子控件的顺序和每个已添加子控件的高度和宽度确定每个已添加子控件在父控件中的摆放位置。本实施例中,调用Android原生控件中的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为当前子控件的高度。
本发明提供的一种自适应子控件的线性布局方法,对于任一父控件,将父控件对应的已添加子控件顺序存储在第二有序集合中,并调用Android原生控件中的layout方法确定每个已添加子控件在父控件中对应的的摆放位置,进而根据每个已添加子控件的宽度和高度确定每个已添加子控件在父控件中对应的的摆放位置,有利于将已添加子控件全部显示在父控件中,进一步确保了子控件显示的完整性,有效避免了子控件在父控件显示不全的问题。
图2为本发明实施例的一种自适应子控件的线性布局装置的整体结构示意图,如图2所示,本发明提供一种自适应子控件的线性布局装置,包括:
控件获取单元1,用于对于任一父控件,获取所述父控件对应的待添加子控件,将所述待添加子控件依次存储在第一有序集合中;
控件调整单元2,用于遍历所述第一有序集合中存储的所述待添加子控件,对于任一待添加子控件,获取所述任一待添加子控件的宽度和高度,判断所述父控件的布局方向,当所述布局方向为竖直时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的高度总和,确定所述父控件的高度与所述高度总和的高度差值,若所述任一待添加子控件的高度大于所述高度差值,将所述任一待添加子控件的高度调整为所述高度差值,若所述任一待添加子控件的宽度大于所述父控件的宽度,将所述任一待添加子控件的宽度调整为所述父控件的宽度;
控件添加单元3,用于当调整后的所述任一待添加子控件的高度和宽度均不为零时,将调整后的所述任一待添加子控件添加至所述第二有序集合中,获得更新后的所述第二有序集合;
控件排列显示单元4,用于遍历更新后的所述第二有序集合中的已添加子控件,确定每个所述已添加子控件在所述父控件中对应的摆放位置,按照每个所述已添加子控件对应的摆放位置在所述父控件中显示每个所述已添加子控件。
具体地,本发明提供的一种自适应子控件的线性布局装置包括空案件获取单元1、控件调整单元2、控件添加单元3和控件排列显示单元4,通过各单元执行上述方法实施例中的自适应子控件的线性布局方法,具体实现如下:
首先创建父控件,对于创建的任一父控件,当向父控件中添加子控件时,首先利用控件获取单元1获取对应的待添加子控件,并将待添加子控件按照顺序依次存储在第一有序集合中。在实际应用中,控件获取单元1可以通过调用Android原生线性布局控件LinearLayout中的addView方法获取对应的待添加子控件,同时第一有序集合可以为list集合,也可以为其他有序集合,可以根据实际需求进行设置,此处不做具体限定。
进一步地,利用控件调整单元2从上述第一有序集合中获取所有待添加子控件,并依次遍历所有待添加子控件,对于任一待添加子控件,控件调整单元2获取任一待添加子控件的宽度和高度。具体地,控件调整单元2可以通过调用Android原生线性布局控件LinearLayout中的getChildCount从第一有序集合中获取所有待添加子控件,对于所有待添加子控件中的任一待添加子控件,控件调整单元2在onLayout方法中调用getMeasuredWidth方法获取任一待添加子控件的宽度,同时调用getMeasuredHeight方法获取任一待添加子控件的高度。
进一步地,控件调整单元2判断父控件对应的布局方向,即确定父控件中子控件的布局方向,当父控件对应的布局方向为竖直时,获取父控件对应的第二有序集合,第二有序集合中存储了父控件中当前已添加的子控件,控件调整单元2从第二有序集合中获取当前父控件中已添加子控件的高度总和,并获取父控件的高度,进而确定父控件高度与已添加子控件的高度总和的高度差值。对于第一有序集合中存储的任一待添加子控件,控件调整单元2再判断任一待添加子控件的高度是否大于上述高度差值,当任一待添加子控件的高度大于上述高度差值时,将任一待添加子控件的高度调整为上述高度差值。控件调整单元2同时获取父控件的宽度,判断任一待添加子控件的宽度是否大于父控件的宽度,当任一待添加子控件的宽度大于父控件的宽度时,将任一待添加子控件的宽度调整为父控件的宽度。
进一步地,对于第一有序集合中的任一待添加子控件,将任一待添加子控件进行上述高度和宽度的调整后,若调整后的任一待添加子控件的高度不为零时,利用控件添加单元3将调整后的任一待添加子控件添加至第二有序集合中,即将该调整后的待添加子控件作为已添加子控件存储在第二有序集合中,进而第二有序集合得到更新,并获得更新后的第二有序集合。
进一步地,利用控件排列显示单元4遍历更新后的第二有序集合,根据每个已添加子控件的调整后的高度和宽度,依次确定第二有序集合中的每个已添加子控件的摆放位置,并按照每个已添加子控件确定的摆放位置将每个已添加子控件在父控件中进行显示。其中,控件排列显示单元4可以调用Android原生线性布局控件LinearLayout中的layout方法确定第二有序集合中的每个已添加子控件的摆放位置,并调用onDraw方法按照对应的摆放位置将每个已添加子控件进行显示。此外,上述第二有序集合可以为list集合,也可以为其他有序集合,可以根据实际需求进行设置,此处不做具体限定。
本发明提供的一种自适应子控件的线性布局装置,当向父控件中添加子控件时,首先将待添加子控件进行顺序存储,并按照存储顺序,依次获取待添加子控件的宽度和高度,同时判断父控件中子控件的布局方向,再结合布局方向及父控件的高度和宽度,依次将待添加子控件的高度和宽度调整在父控件的范围内;解决了Android原生控件中存在的子控件显示不全的问题,同时,当父控件的布局方向为竖直时,若父控件中子控件的高度总和已达到父控件的高度,则其他待添加的子控件的高度均调整为零,且无法添加至父控件中,进一步避免了Android原生控件中存在的子控件完全无法显示的问题,无需对完全无法显示的控件进行渲染,一定程度上节省了服务器的资源。
基于上述任一实施例,提供一种自适应子控件的线性布局系统,所述控件调整单元还用于:当所述布局方向为水平时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的宽度总和,确定所述父控件的宽度与所述宽度总和的宽度差值,若所述任一待添加子控件的宽度大于所述宽度差值,将所述任一待添加子控件的宽度调整为所述宽度差值,若所述任一待添加子控件的高度大于所述父控件的高度,将所述任一待添加子控件的高度调整为所述父控件的高度。
进一步地,在上述技术方案的基础上,当父控件对应的布局方向为水平时,利用控件调整单元2获取父控件对应的第二有序集合,第二有序集合中存储了父控件中当前已添加的子控件,控件调整单元2从第二有序集合中获取当前父控件中已添加子控件的宽度总和,并获取父控件的宽度,进而确定父控件宽度与已添加子控件的宽度总和的宽度差值。对于第一有序集合中存储的任一待添加子控件,控件调整单元2再判断任一待添加子控件的宽度是否大于上述宽度差值,当任一待添加子控件的宽度大于上述宽度差值时,将任一待添加子控件的宽度调整为上述宽度差值。控件调整单元2同时获取父控件的高度,判断任一待添加子控件的高度是否大于父控件的高度,当任一待添加子控件的高度大于父控件的高度时,将任一待添加子控件的高度调整为父控件的高度。
本发明提供的一种自适应子控件的线性布局装置,当向父控件中添加子控件时,首先将待添加子控件进行顺序存储,并按照存储顺序,依次获取待添加子控件的宽度和高度,同时判断父控件中子控件的布局方向,再结合布局方向及父控件的高度和宽度,依次将待添加子控件的高度和宽度调整在父控件的范围内;解决了Android原生控件中存在的子控件显示不全的问题,同时,当父控件的布局方向为水平时,若父控件中子控件的宽度总和已达到父控件的宽度,则其他待添加的子控件的宽度均调整为零,且无法添加至父控件中,进一步避免了Android原生控件中存在的子控件完全无法显示的问题,无需对完全无法显示的控件进行渲染,一定程度上节省了服务器的资源。
图3示出本申请实施例的自适应子控件的线性布局方法的设备的结构框图。参照图3,所述自适应子控件的线性布局方法的设备,包括:处理器(processor)31、存储器(memory)32和总线33;其中,所述处理器31和存储器32通过所述总线33完成相互间的通信;
所述处理器31用于调用所述存储器32中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:对于任一父控件,获取父控件对应的待添加子控件,将待添加子控件依次存储在第一有序集合中;遍历第一有序集合中存储的待添加子控件,对于任一待添加子控件,获取任一待添加子控件的宽度和高度,判断父控件的布局方向,当布局方向为竖直时,获取父控件对应的第二有序集合,第二有序集合中存储了已添加子控件,获取已添加子控件的高度总和,确定父控件的高度与高度总和的高度差值,若任一待添加子控件的高度大于高度差值,将任一待添加子控件的高度调整为高度差值,若任一待添加子控件的宽度大于父控件的宽度,将任一待添加子控件的宽度调整为父控件的宽度;当调整后的任一待添加子控件的高度和宽度均不为零时,将调整后的任一待添加子控件添加至第二有序集合中,获得更新后的所述第二有序集合;遍历更新后的所述第二有序集合中的已添加子控件,确定每个已添加子控件在父控件中对应的摆放位置,按照每个已添加子控件对应的摆放位置在父控件中显示每个已添加子控件。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:对于任一父控件,获取父控件对应的待添加子控件,将待添加子控件依次存储在第一有序集合中;遍历第一有序集合中存储的待添加子控件,对于任一待添加子控件,获取任一待添加子控件的宽度和高度,判断父控件的布局方向,当布局方向为竖直时,获取父控件对应的第二有序集合,第二有序集合中存储了已添加子控件,获取已添加子控件的高度总和,确定父控件的高度与高度总和的高度差值,若任一待添加子控件的高度大于高度差值,将任一待添加子控件的高度调整为高度差值,若任一待添加子控件的宽度大于父控件的宽度,将任一待添加子控件的宽度调整为父控件的宽度;当调整后的任一待添加子控件的高度和宽度均不为零时,将调整后的任一待添加子控件添加至第二有序集合中,获得更新后的所述第二有序集合;遍历更新后的所述第二有序集合中的已添加子控件,确定每个已添加子控件在父控件中对应的摆放位置,按照每个已添加子控件对应的摆放位置在父控件中显示每个已添加子控件。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:对于任一父控件,获取父控件对应的待添加子控件,将待添加子控件依次存储在第一有序集合中;遍历第一有序集合中存储的待添加子控件,对于任一待添加子控件,获取任一待添加子控件的宽度和高度,判断父控件的布局方向,当布局方向为竖直时,获取父控件对应的第二有序集合,第二有序集合中存储了已添加子控件,获取已添加子控件的高度总和,确定父控件的高度与高度总和的高度差值,若任一待添加子控件的高度大于高度差值,将任一待添加子控件的高度调整为高度差值,若任一待添加子控件的宽度大于父控件的宽度,将任一待添加子控件的宽度调整为父控件的宽度;当调整后的任一待添加子控件的高度和宽度均不为零时,将调整后的任一待添加子控件添加至第二有序集合中,获得更新后的所述第二有序集合;遍历更新后的所述第二有序集合中的已添加子控件,确定每个已添加子控件在父控件中对应的摆放位置,按照每个已添加子控件对应的摆放位置在父控件中显示每个已添加子控件。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的自适应子控件的线性布局方法的设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种自适应子控件的线性布局方法,其特征在于,包括:
S1,对于任一父控件,获取所述父控件对应的待添加子控件,将所述待添加子控件依次存储在第一有序集合中;
S2,遍历所述第一有序集合中存储的所述待添加子控件,对于任一待添加子控件,获取所述任一待添加子控件的宽度和高度,判断所述父控件的布局方向,当所述布局方向为竖直时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的高度总和,确定所述父控件的高度与所述高度总和的高度差值,若所述任一待添加子控件的高度大于所述高度差值,将所述任一待添加子控件的高度调整为所述高度差值,若所述任一待添加子控件的宽度大于所述父控件的宽度,将所述任一待添加子控件的宽度调整为所述父控件的宽度;
S3,当调整后的所述任一待添加子控件的高度和宽度均不为零时,将调整后的所述任一待添加子控件添加至所述第二有序集合中,获得更新后的所述第二有序集合;
S4,遍历更新后的所述第二有序集合中的已添加子控件,确定每个所述已添加子控件在所述父控件中对应的摆放位置,按照每个所述已添加子控件对应的摆放位置在所述父控件中显示每个所述已添加子控件。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2还包括:当所述布局方向为水平时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的宽度总和,确定所述父控件的宽度与所述宽度总和的宽度差值,若所述任一待添加子控件的宽度大于所述宽度差值,将所述任一待添加子控件的宽度调整为所述宽度差值,若所述任一待添加子控件的高度大于所述父控件的高度,将所述任一待添加子控件的高度调整为所述父控件的高度。
3.根据权利要求1所述的方法,其特征在于,所述步骤S2还包括:当所述布局方向为竖直时,若所述任一待添加子控件的高度不大于所述高度差值,且所述任一待添加子控件的宽度不大于所述父控件的宽度,将所述任一待添加子控件添加至所述第二有序集合中。
4.根据权利要求2所述的方法,其特征在于,所述步骤S2还包括:当所述布局方向为水平时,若所述任一待添加子控件的宽度不大于所述宽度差值,且所述任一待添加子控件的高度不大于所述父控件的高度,将所述任一待添加子控件添加至所述第二有序集合中。
5.根据权利要求1所述的方法,其特征在于,初始状态下,所述第二有序集合中的已添加控件的个数为零。
6.根据权利要求1所述的方法,其特征在于,所述步骤S2之前还包括:调用Android原生控件中的onLayout方法获取所述父控件的高度和宽度。
7.根据权利要求1所述的方法,其特征在于,步骤S4中所述确定每个所述已添加子控件在所述父控件中对应的的摆放位置进一步包括:调用Android原生控件中的layout方法确定每个所述已添加子控件在所述父控件中对应的的摆放位置。
8.一种自适应子控件的线性布局装置,其特征在于,包括:
控件获取单元,用于对于任一父控件,获取所述父控件对应的待添加子控件,将所述待添加子控件依次存储在第一有序集合中;
控件调整单元,用于依次遍历所述第一有序集合中存储的所述待添加子控件,对于任一待添加子控件,获取所述任一待添加子控件的宽度和高度,判断所述父控件的布局方向,当所述布局方向为竖直时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的高度总和,确定所述父控件的高度与所述高度总和的高度差值,若所述任一待添加子控件的高度大于所述高度差值,将所述任一待添加子控件的高度调整为所述高度差值,若所述任一待添加子控件的宽度大于所述父控件的宽度,将所述任一待添加子控件的宽度调整为所述父控件的宽度;
控件添加单元,用于当调整后的所述任一待添加子控件的高度和宽度均不为零时,将调整后的所述任一待添加子控件添加至所述第二有序集合中,获得更新后的所述第二有序集合;
控件排列显示单元,用于遍历更新后的所述第二有序集合中的已添加子控件,确定每个所述已添加子控件在所述父控件中对应的摆放位置,按照每个所述已添加子控件对应的摆放位置在所述父控件中显示每个所述已添加子控件。
9.根据权利要求8所述的装置,其特征在于,所述控件调整单元还用于:当所述布局方向为水平时,获取所述父控件对应的第二有序集合,所述第二有序集合中存储了已添加子控件,获取所述已添加子控件的宽度总和,确定所述父控件的宽度与所述宽度总和的宽度差值,若所述任一待添加子控件的宽度大于所述宽度差值,将所述任一待添加子控件的宽度调整为所述宽度差值,若所述任一待添加子控件的高度大于所述父控件的高度,将所述任一待添加子控件的高度调整为所述父控件的高度。
10.一种自适应子控件的线性布局方法的设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
CN201810007869.7A 2018-01-04 2018-01-04 一种自适应子控件的线性布局方法及装置 Active CN110007915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810007869.7A CN110007915B (zh) 2018-01-04 2018-01-04 一种自适应子控件的线性布局方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810007869.7A CN110007915B (zh) 2018-01-04 2018-01-04 一种自适应子控件的线性布局方法及装置

Publications (2)

Publication Number Publication Date
CN110007915A true CN110007915A (zh) 2019-07-12
CN110007915B CN110007915B (zh) 2022-11-11

Family

ID=67164343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810007869.7A Active CN110007915B (zh) 2018-01-04 2018-01-04 一种自适应子控件的线性布局方法及装置

Country Status (1)

Country Link
CN (1) CN110007915B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176769A (zh) * 2019-12-19 2020-05-19 贵阳语玩科技有限公司 一种Android端的多图片展示方法
CN111338522A (zh) * 2020-02-19 2020-06-26 望海康信(北京)科技股份公司 显示界面的布局方法、装置、电子设备及存储介质
CN112230908A (zh) * 2019-07-15 2021-01-15 腾讯科技(深圳)有限公司 一种对齐组件的方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030025737A1 (en) * 2001-08-02 2003-02-06 Breinberg Steven Adam System and method for automatic and dynamic layout of resizable dialog type windows
US20040230940A1 (en) * 2003-05-12 2004-11-18 Microsoft Corporation Dynamic pluggable user interface layout
US20060218489A1 (en) * 2005-03-07 2006-09-28 Microsoft Corporation Layout system for consistent user interface results
US20070006095A1 (en) * 2005-07-01 2007-01-04 Liangkui Feng Auto layout of user interface elements in a window
CN101140516A (zh) * 2007-10-22 2008-03-12 金蝶软件(中国)有限公司 一种动态布局界面元素的方法和系统
CN201867789U (zh) * 2010-03-11 2011-06-15 中国工商银行股份有限公司 一种自适应的图形用户界面构建设备
CN103092941A (zh) * 2013-01-10 2013-05-08 北京奇虎科技有限公司 在电子设备上呈现内容的方法和装置
CN103164197A (zh) * 2011-12-14 2013-06-19 中兴通讯股份有限公司 Ui布局自适应方法、移动设备以及布局生成设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030025737A1 (en) * 2001-08-02 2003-02-06 Breinberg Steven Adam System and method for automatic and dynamic layout of resizable dialog type windows
US20040230940A1 (en) * 2003-05-12 2004-11-18 Microsoft Corporation Dynamic pluggable user interface layout
US20060218489A1 (en) * 2005-03-07 2006-09-28 Microsoft Corporation Layout system for consistent user interface results
US20070006095A1 (en) * 2005-07-01 2007-01-04 Liangkui Feng Auto layout of user interface elements in a window
CN101140516A (zh) * 2007-10-22 2008-03-12 金蝶软件(中国)有限公司 一种动态布局界面元素的方法和系统
CN201867789U (zh) * 2010-03-11 2011-06-15 中国工商银行股份有限公司 一种自适应的图形用户界面构建设备
CN103164197A (zh) * 2011-12-14 2013-06-19 中兴通讯股份有限公司 Ui布局自适应方法、移动设备以及布局生成设备
CN103092941A (zh) * 2013-01-10 2013-05-08 北京奇虎科技有限公司 在电子设备上呈现内容的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"智能应用程序布局", 《电脑编程技巧与维护》 *
STONEN: "iOS UI布局", 《HTTPS://STONEN.GITHUB.IO/IOS-UI%E5%B8%83%E5%B1%80/》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112230908A (zh) * 2019-07-15 2021-01-15 腾讯科技(深圳)有限公司 一种对齐组件的方法、装置、电子设备及存储介质
CN112230908B (zh) * 2019-07-15 2023-05-23 腾讯科技(深圳)有限公司 一种对齐组件的方法、装置、电子设备及存储介质
CN111176769A (zh) * 2019-12-19 2020-05-19 贵阳语玩科技有限公司 一种Android端的多图片展示方法
CN111338522A (zh) * 2020-02-19 2020-06-26 望海康信(北京)科技股份公司 显示界面的布局方法、装置、电子设备及存储介质
CN111338522B (zh) * 2020-02-19 2021-06-18 望海康信(北京)科技股份公司 显示界面的布局方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110007915B (zh) 2022-11-11

Similar Documents

Publication Publication Date Title
CN110007915A (zh) 一种自适应子控件的线性布局方法及装置
US20150294488A1 (en) Graph generating device, graph generating method and graph generating program
CN110377209B (zh) 一种通过拖拽实现可视化流程配置的方法及装置
US20090094544A1 (en) Method and apparatus for selecting a layout for a user interface to display on an electronic device
CN110247794B (zh) 一种多种布局方式的拓扑图形展示方法及装置
CN107608675A (zh) 基于虚拟文档对象模型的跨平台前端开发系统及方法
CN106502770B (zh) 一种基于有限状态机的hmi状态迁移方法
CN109144485B (zh) 一种微服务的部署方法、装置、设备及可读存储介质
CN110633959A (zh) 基于图结构的审批任务创建方法、装置、设备及介质
CN114090193A (zh) 一种请求处理方法及装置
CN104503737B (zh) 一种统一建模平台
CN109254770A (zh) 图形化编程平台下的自定义按钮样式的方法及电子设备
CN108920281A (zh) 大规模图片处理方法及系统
CN107092413A (zh) 一种可视控件圆角化处理方法及系统
US8301582B2 (en) Dynamic constraint satisfaction problem solver with sub-problem placeholder
WO2021174221A1 (en) Ai augmented digital platform and user interface
CN111209463B (zh) 互联网数据采集方法及装置
CN111158681B (zh) 一种Web前端拓扑图插件实现方法及系统
CN108133453A (zh) 一种基于OpenGL的图像处理器及其功能扩展方法
CN110312990A (zh) 配置方法及系统
CN106844467A (zh) 数据展示方法和装置
CN108363597A (zh) 一种页面跳转方法及系统
CN107102832B (zh) 图表中图形的显示方法及装置
CN109213605A (zh) 一种适用于高并发场景的服务器i/o实现方法
CN108733361A (zh) 一种实现并发容器的方法和装置

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