一种基于安卓平台的多级树形菜单的实现方法

文档序号:9865031阅读:235来源:国知局
一种基于安卓平台的多级树形菜单的实现方法
【专利说明】
【技术领域】
[0001]本发明涉及显示领域,具体涉及一种基于安卓平台的多级树形菜单的实现方法。【【背景技术】】
[0002]目前很多android(安卓)应用里面需要一个多级的树形列表,譬如,一个有区域归属和分组归属的车辆。在向用户展示这辆车的所属区域时,势必要将该车的所属的所属区域显示出来,如果该区域中有用户设置了分组,那么也应该将该车所属的分组信息显示出来。就上述举例而言,该车的显示至少有三级,即:所属区域-所属分组-车辆。若用户的分组再进行细致,导致一辆车所属的层级是不确定的,也不仅仅限制于三级、四级等。由于这些层级信息是由用户控制的,为了良好的用户体验,App也不能给用户限定最深层级数目,本发明正是基于此种需求下产生的。
[0003]an droid (安卓)系统提供了 ExpandableLi stVi ew(以分组列表的形式展示具体内容的控件)来实现多级列表的展示。采用ExpandableListView嵌套ListView/ExpandableListView可以实现三级菜单,甚至多级菜单。
[0004]现有技术存在如下缺点:1、在用户可以设置分组的情况,用户的分组通常会有多级,并且用户分组往往是随意的,那么各个车辆的所属层级不尽相同,有的父层级甚至出现没有最终层级的情况。ExpandableListView模式固化,嵌套一级模式下,也只能显示三级层级,对于四、五甚至更深的层级则鞭长莫及。2、采用ExpandableListView嵌套ListView/ExpandableLi stView实现复杂,并且ExpandableLi stView在嵌套多个I i stview或者expandablelistview时候,导致view本身事件冲突,埋下众多不易察觉甚至无法解决的bug。

【发明内容】

[0005]本发明所要解决的技术问题在于提供一种基于安卓平台的多级树形菜单的实现方法,显示用户随意设置的每个层级信息,并且响应用户对各个层级的点击处理。
[0006]本发明是这样实现的:
[0007]—种基于安卓平台的多级树形菜单的实现方法,包括如下步骤:
[0008]步骤一:抽象出描述层级信息的对象,该对象包含以下描述信息:用于标识层级信息的唯一标识、用于描述当前层级是否为父层级的信息,用于描述当前层级是否有子层级的信息,用于描述该层级的父层级标识、用于描述当前层级所处的层级深度信息、用于描述当前层级是否处于折叠状态的信息;
[0009]步骤二:抽象出层级信息的显示文件,该显示文件包含以下信息:显示层级名称的文本、显示层级折叠状态的图片;
[0010]步骤三:根据抽象出的层级信息对象设置树形菜单的适配器;
[0011]步骤四:遍历抽象出的层级信息集合,默认展示第一层级及其直接子层级数据,使其成为当前屏幕可见层级;
[0012]步骤五:在向用户展示信息时进行如下判断:首先判断当前层级是否为父层级,若为父层级,则通过当前层级的层级深度信息计算显示的层级名称,并将显示层级折叠状态的图片设置为可操作;若当前层级不为父层级,通过当前层级的层级深度信息计算显示的层级名称,并将显示层级折叠状态的图片设置为不可见;
[0013]步骤六:在用户进行点击层级时做如下判断:
[0014]判断用户选择的层级是否为父层级,则进行如下判断:
[0015]首先,根据描述层级的折叠状态信息判断当前层级是否处于折叠状态,若当前层级处于折叠状态,则设置描述层级是否处于折叠状态的信息为展开状态,并加载该层级下的所有子层级,若用户选择的当前层级处于展开状态,则设置描述层级是否处于折叠状态的信息为折叠状态,并将该层级下的所有子层级移除屏幕;其次,获取用户所选层级的层级信息,进行信息传递,该项用于树形菜单的扩展;
[0016]若用户选择的层级为最终层级,则进行如下处理:
[0017]获取用户所选层级的层级信息,并进行信息展示。
[0018]本发明的优点在于:本发明解决了android提供多级树形列表展示繁杂、笨重、事件冲突的问题。不论用户设置的层级信息有多深,都能达到简单、快速的树形列表展示。可以定制需要向用户展示的界面信息。本发明避免了直接操作海量用户数据,仅操作屏幕上可见的用户数据,提高了树形控件的展示速度和响应用户操作的速度。
【【附图说明】】
[0019]下面参照附图结合实施例对本发明作进一步的描述。
[0020]图1是本发明的方法流程示意图。
【【具体实施方式】】
[0021]如图1所示,一种基于安卓平台的多级树形菜单的实现方法,包括如下步骤:
[0022]步骤一:抽象出描述层级信息的对象,该对象包含以下描述信息:用于标识层级信息的唯一标识、用于描述当前层级是否为父层级的信息,用于描述当前层级是否有子层级的信息,用于描述该层级的父层级标识、用于描述当前层级所处的层级深度信息、用于描述当前层级是否处于折叠状态的信息;
[0023]步骤二:抽象出层级信息的显示文件,该文件包含以下信息:显示层级名称的文本、显示层级折叠状态的图片;
[0024]步骤三:根据抽象出的层级信息对象设置树形菜单的适配器。
[0025]步骤四:遍历抽象出的层级信息集合,默认展示第一层级及其直接子层级数据,使其成为当前屏幕可见层级。
[0026]步骤五:为了显示出树形菜单的效果和用户层级信息,在向用户展示信息时应进行如下判断:首先判断当前层级是否为父层级,若为父层级,则通过当前层级的层级深度信息计算显示的层级名称,并将显示层级折叠状态的图片设置为可操作;若当前层级不为父层级,通过当前层级的层级深度信息计算显示的层级名称,并将显示层级折叠状态的图片设置为不可见;
[0027]步骤六:树形菜单还有用响应用户点击操作能力,为此,还应在用户进行点击层级时做如下判断:
[0028]判断用户选择的层级是否为父层级,则进行如下判断:
[0029]首先,根据描述层级的折叠状态信息判断当前层级是否处于折叠状态。若当前层级处于折叠状态,则设置描述层级是否处于折叠状态的信息为展开状态,并加载该层级下的所有子层级,若用户选择的当前层级处于展开状态,则设置描述层级是否处于折叠状态的信息为折叠状态,并将该层级下的所有子层级移除屏幕;其次,获取用户所选层级的层级信息,进行信息传递,该项可以用于树形菜单的扩展;
[0030]若用户选择的层级为最终层级,则进行如下处理:
[0031]获取用户所选层级的层级信息,并进行信息展示或者进行其他的处理。
[0032]本发明解决了android提供多级树形列表展示繁杂、笨重、事件冲突的问题。不论用户设置的层级信息有多深,都能达到简单、快速的树形列表展示。可以定制需要向用户展示的界面信息。本发明避免了直接操作海量用户数据,仅操作屏幕上可见的用户数据,提高了树形控件的展示速度和响应用户操作的速度。
[0033]以上所述仅为本发明的较佳实施用例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于安卓平台的多级树形菜单的实现方法,其特征在于:包括如下步骤: 步骤一:抽象出描述层级信息的对象,该对象包含以下描述信息:用于标识层级信息的唯一标识、用于描述当前层级是否为父层级的信息,用于描述当前层级是否有子层级的信息,用于描述该层级的父层级标识、用于描述当前层级所处的层级深度信息、用于描述当前层级是否处于折叠状态的信息; 步骤二:抽象出层级信息的显示文件,该显示文件包含以下信息:显示层级名称的文本、显示层级折叠状态的图片; 步骤三:根据抽象出的层级信息对象设置树形菜单的适配器; 步骤四:遍历抽象出的层级信息集合,默认展示第一层级及其直接子层级数据,使其成为当前屏幕可见层级; 步骤五:在向用户展示信息时进行如下判断:首先判断当前层级是否为父层级,若为父层级,则通过当前层级的层级深度信息计算显示的层级名称,并将显示层级折叠状态的图片设置为可操作;若当前层级不为父层级,通过当前层级的层级深度信息计算显示的层级名称,并将显示层级折叠状态的图片设置为不可见; 步骤六:在用户进行点击层级时做如下判断: 判断用户选择的层级是否为父层级,则进行如下判断: 首先,根据描述层级的折叠状态信息判断当前层级是否处于折叠状态,若当前层级处于折叠状态,则设置描述层级是否处于折叠状态的信息为展开状态,并加载该层级下的所有子层级,若用户选择的当前层级处于展开状态,则设置描述层级是否处于折叠状态的信息为折叠状态,并将该层级下的所有子层级移除屏幕;其次,获取用户所选层级的层级信息,进行信息传递,该项用于树形菜单的扩展; 若用户选择的层级为最终层级,则进行如下处理: 获取用户所选层级的层级信息,并进行信息展示。
【专利摘要】一种基于安卓平台的多级树形菜单的实现方法,包括:抽象出描述层级信息的对象;抽象出层级信息的显示文件;在向用户展示信息时进行如下判断:首先判断当前层级是否为父层级,若为父层级,则通过当前层级的层级深度信息计算显示的层级名称,并将显示层级折叠状态的图片设置为可操作;若当前层级不为父层级,通过当前层级的层级深度信息计算显示的层级名称,并将显示层级折叠状态的图片设置为不可见;在树形菜单中只显示手机当前屏幕上可见的层级信息,在用户进行点击层级时做如下判断:获取用户所选层级的层级信息,进行信息传递,该项用于树形菜单的扩展;若用户选择的层级为最终层级,则获取用户所选层级的层级信息,并进行信息展示。
【IPC分类】G06F17/30, G06F3/0482
【公开号】CN105630306
【申请号】CN201510979679
【发明人】吴丽华, 徐品, 陈建灵
【申请人】福建星海通信科技有限公司
【公开日】2016年6月1日
【申请日】2015年12月24日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1