一種基于安卓平臺的多級樹形菜單的實現(xiàn)方法
【專利說明】
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及顯示領(lǐng)域,具體涉及一種基于安卓平臺的多級樹形菜單的實現(xiàn)方法?!尽颈尘凹夹g(shù)】】
[0002]目前很多android(安卓)應(yīng)用里面需要一個多級的樹形列表,譬如,一個有區(qū)域歸屬和分組歸屬的車輛。在向用戶展示這輛車的所屬區(qū)域時,勢必要將該車的所屬的所屬區(qū)域顯示出來,如果該區(qū)域中有用戶設(shè)置了分組,那么也應(yīng)該將該車所屬的分組信息顯示出來。就上述舉例而言,該車的顯示至少有三級,即:所屬區(qū)域-所屬分組-車輛。若用戶的分組再進行細(xì)致,導(dǎo)致一輛車所屬的層級是不確定的,也不僅僅限制于三級、四級等。由于這些層級信息是由用戶控制的,為了良好的用戶體驗,App也不能給用戶限定最深層級數(shù)目,本發(fā)明正是基于此種需求下產(chǎn)生的。
[0003]an droid (安卓)系統(tǒng)提供了 ExpandableLi stVi ew(以分組列表的形式展示具體內(nèi)容的控件)來實現(xiàn)多級列表的展示。采用ExpandableListView嵌套ListView/ExpandableListView可以實現(xiàn)三級菜單,甚至多級菜單。
[0004]現(xiàn)有技術(shù)存在如下缺點:1、在用戶可以設(shè)置分組的情況,用戶的分組通常會有多級,并且用戶分組往往是隨意的,那么各個車輛的所屬層級不盡相同,有的父層級甚至出現(xiàn)沒有最終層級的情況。ExpandableListView模式固化,嵌套一級模式下,也只能顯示三級層級,對于四、五甚至更深的層級則鞭長莫及。2、采用ExpandableListView嵌套ListView/ExpandableLi stView實現(xiàn)復(fù)雜,并且ExpandableLi stView在嵌套多個I i stview或者expandablelistview時候,導(dǎo)致view本身事件沖突,埋下眾多不易察覺甚至無法解決的bug。
【
【發(fā)明內(nèi)容】
】
[0005]本發(fā)明所要解決的技術(shù)問題在于提供一種基于安卓平臺的多級樹形菜單的實現(xiàn)方法,顯示用戶隨意設(shè)置的每個層級信息,并且響應(yīng)用戶對各個層級的點擊處理。
[0006]本發(fā)明是這樣實現(xiàn)的:
[0007]—種基于安卓平臺的多級樹形菜單的實現(xiàn)方法,包括如下步驟:
[0008]步驟一:抽象出描述層級信息的對象,該對象包含以下描述信息:用于標(biāo)識層級信息的唯一標(biāo)識、用于描述當(dāng)前層級是否為父層級的信息,用于描述當(dāng)前層級是否有子層級的信息,用于描述該層級的父層級標(biāo)識、用于描述當(dāng)前層級所處的層級深度信息、用于描述當(dāng)前層級是否處于折疊狀態(tài)的信息;
[0009]步驟二:抽象出層級信息的顯示文件,該顯示文件包含以下信息:顯示層級名稱的文本、顯示層級折疊狀態(tài)的圖片;
[0010]步驟三:根據(jù)抽象出的層級信息對象設(shè)置樹形菜單的適配器;
[0011]步驟四:遍歷抽象出的層級信息集合,默認(rèn)展示第一層級及其直接子層級數(shù)據(jù),使其成為當(dāng)前屏幕可見層級;
[0012]步驟五:在向用戶展示信息時進行如下判斷:首先判斷當(dāng)前層級是否為父層級,若為父層級,則通過當(dāng)前層級的層級深度信息計算顯示的層級名稱,并將顯示層級折疊狀態(tài)的圖片設(shè)置為可操作;若當(dāng)前層級不為父層級,通過當(dāng)前層級的層級深度信息計算顯示的層級名稱,并將顯示層級折疊狀態(tài)的圖片設(shè)置為不可見;
[0013]步驟六:在用戶進行點擊層級時做如下判斷:
[0014]判斷用戶選擇的層級是否為父層級,則進行如下判斷:
[0015]首先,根據(jù)描述層級的折疊狀態(tài)信息判斷當(dāng)前層級是否處于折疊狀態(tài),若當(dāng)前層級處于折疊狀態(tài),則設(shè)置描述層級是否處于折疊狀態(tài)的信息為展開狀態(tài),并加載該層級下的所有子層級,若用戶選擇的當(dāng)前層級處于展開狀態(tài),則設(shè)置描述層級是否處于折疊狀態(tài)的信息為折疊狀態(tài),并將該層級下的所有子層級移除屏幕;其次,獲取用戶所選層級的層級信息,進行信息傳遞,該項用于樹形菜單的擴展;
[0016]若用戶選擇的層級為最終層級,則進行如下處理:
[0017]獲取用戶所選層級的層級信息,并進行信息展示。
[0018]本發(fā)明的優(yōu)點在于:本發(fā)明解決了android提供多級樹形列表展示繁雜、笨重、事件沖突的問題。不論用戶設(shè)置的層級信息有多深,都能達到簡單、快速的樹形列表展示??梢远ㄖ菩枰蛴脩粽故镜慕缑嫘畔ⅰ1景l(fā)明避免了直接操作海量用戶數(shù)據(jù),僅操作屏幕上可見的用戶數(shù)據(jù),提高了樹形控件的展示速度和響應(yīng)用戶操作的速度。
【【附圖說明】】
[0019]下面參照附圖結(jié)合實施例對本發(fā)明作進一步的描述。
[0020]圖1是本發(fā)明的方法流程示意圖。
【【具體實施方式】】
[0021]如圖1所示,一種基于安卓平臺的多級樹形菜單的實現(xiàn)方法,包括如下步驟:
[0022]步驟一:抽象出描述層級信息的對象,該對象包含以下描述信息:用于標(biāo)識層級信息的唯一標(biāo)識、用于描述當(dāng)前層級是否為父層級的信息,用于描述當(dāng)前層級是否有子層級的信息,用于描述該層級的父層級標(biāo)識、用于描述當(dāng)前層級所處的層級深度信息、用于描述當(dāng)前層級是否處于折疊狀態(tài)的信息;
[0023]步驟二:抽象出層級信息的顯示文件,該文件包含以下信息:顯示層級名稱的文本、顯示層級折疊狀態(tài)的圖片;
[0024]步驟三:根據(jù)抽象出的層級信息對象設(shè)置樹形菜單的適配器。
[0025]步驟四:遍歷抽象出的層級信息集合,默認(rèn)展示第一層級及其直接子層級數(shù)據(jù),使其成為當(dāng)前屏幕可見層級。
[0026]步驟五:為了顯示出樹形菜單的效果和用戶層級信息,在向用戶展示信息時應(yīng)進行如下判斷:首先判斷當(dāng)前層級是否為父層級,若為父層級,則通過當(dāng)前層級的層級深度信息計算顯示的層級名稱,并將顯示層級折疊狀態(tài)的圖片設(shè)置為可操作;若當(dāng)前層級不為父層級,通過當(dāng)前層級的層級深度信息計算顯示的層級名稱,并將顯示層級折疊狀態(tài)的圖片設(shè)置為不可見;
[0027]步驟六:樹形菜單還有用響應(yīng)用戶點擊操作能力,為此,還應(yīng)在用戶進行點擊層級時做如下判斷:
[0028]判斷用戶選擇的層級是否為父層級,則進行如下判斷:
[0029]首先,根據(jù)描述層級的折疊狀態(tài)信息判斷當(dāng)前層級是否處于折疊狀態(tài)。若當(dāng)前層級處于折疊狀態(tài),則設(shè)置描述層級是否處于折疊狀態(tài)的信息為展開狀態(tài),并加載該層級下的所有子層級,若用戶選擇的當(dāng)前層級處于展開狀態(tài),則設(shè)置描述層級是否處于折疊狀態(tài)的信息為折疊狀態(tài),并將該層級下的所有子層級移除屏幕;其次,獲取用戶所選層級的層級信息,進行信息傳遞,該項可以用于樹形菜單的擴展;
[0030]若用戶選擇的層級為最終層級,則進行如下處理:
[0031]獲取用戶所選層級的層級信息,并進行信息展示或者進行其他的處理。
[0032]本發(fā)明解決了android提供多級樹形列表展示繁雜、笨重、事件沖突的問題。不論用戶設(shè)置的層級信息有多深,都能達到簡單、快速的樹形列表展示??梢远ㄖ菩枰蛴脩粽故镜慕缑嫘畔?。本發(fā)明避免了直接操作海量用戶數(shù)據(jù),僅操作屏幕上可見的用戶數(shù)據(jù),提高了樹形控件的展示速度和響應(yīng)用戶操作的速度。
[0033]以上所述僅為本發(fā)明的較佳實施用例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1.一種基于安卓平臺的多級樹形菜單的實現(xiàn)方法,其特征在于:包括如下步驟: 步驟一:抽象出描述層級信息的對象,該對象包含以下描述信息:用于標(biāo)識層級信息的唯一標(biāo)識、用于描述當(dāng)前層級是否為父層級的信息,用于描述當(dāng)前層級是否有子層級的信息,用于描述該層級的父層級標(biāo)識、用于描述當(dāng)前層級所處的層級深度信息、用于描述當(dāng)前層級是否處于折疊狀態(tài)的信息; 步驟二:抽象出層級信息的顯示文件,該顯示文件包含以下信息:顯示層級名稱的文本、顯示層級折疊狀態(tài)的圖片; 步驟三:根據(jù)抽象出的層級信息對象設(shè)置樹形菜單的適配器; 步驟四:遍歷抽象出的層級信息集合,默認(rèn)展示第一層級及其直接子層級數(shù)據(jù),使其成為當(dāng)前屏幕可見層級; 步驟五:在向用戶展示信息時進行如下判斷:首先判斷當(dāng)前層級是否為父層級,若為父層級,則通過當(dāng)前層級的層級深度信息計算顯示的層級名稱,并將顯示層級折疊狀態(tài)的圖片設(shè)置為可操作;若當(dāng)前層級不為父層級,通過當(dāng)前層級的層級深度信息計算顯示的層級名稱,并將顯示層級折疊狀態(tài)的圖片設(shè)置為不可見; 步驟六:在用戶進行點擊層級時做如下判斷: 判斷用戶選擇的層級是否為父層級,則進行如下判斷: 首先,根據(jù)描述層級的折疊狀態(tài)信息判斷當(dāng)前層級是否處于折疊狀態(tài),若當(dāng)前層級處于折疊狀態(tài),則設(shè)置描述層級是否處于折疊狀態(tài)的信息為展開狀態(tài),并加載該層級下的所有子層級,若用戶選擇的當(dāng)前層級處于展開狀態(tài),則設(shè)置描述層級是否處于折疊狀態(tài)的信息為折疊狀態(tài),并將該層級下的所有子層級移除屏幕;其次,獲取用戶所選層級的層級信息,進行信息傳遞,該項用于樹形菜單的擴展; 若用戶選擇的層級為最終層級,則進行如下處理: 獲取用戶所選層級的層級信息,并進行信息展示。
【專利摘要】一種基于安卓平臺的多級樹形菜單的實現(xiàn)方法,包括:抽象出描述層級信息的對象;抽象出層級信息的顯示文件;在向用戶展示信息時進行如下判斷:首先判斷當(dāng)前層級是否為父層級,若為父層級,則通過當(dāng)前層級的層級深度信息計算顯示的層級名稱,并將顯示層級折疊狀態(tài)的圖片設(shè)置為可操作;若當(dāng)前層級不為父層級,通過當(dāng)前層級的層級深度信息計算顯示的層級名稱,并將顯示層級折疊狀態(tài)的圖片設(shè)置為不可見;在樹形菜單中只顯示手機當(dāng)前屏幕上可見的層級信息,在用戶進行點擊層級時做如下判斷:獲取用戶所選層級的層級信息,進行信息傳遞,該項用于樹形菜單的擴展;若用戶選擇的層級為最終層級,則獲取用戶所選層級的層級信息,并進行信息展示。
【IPC分類】G06F17/30, G06F3/0482
【公開號】CN105630306
【申請?zhí)枴緾N201510979679
【發(fā)明人】吳麗華, 徐品, 陳建靈
【申請人】福建星海通信科技有限公司
【公開日】2016年6月1日
【申請日】2015年12月24日