這篇文章給大家分享的是有關(guān)android如何實(shí)現(xiàn)菜單三級(jí)樹效果的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比南京網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式南京網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋南京地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
具體內(nèi)容如下
【MainActivity】
public void treeOnClick() { // TODO Auto-generated method stub superAdapter.RemoveAll(); superAdapter.notifyDataSetChanged(); String MenuCatName = getDate("MenuCatName"); String MenuGroupName = getDate("MenuGroupName"); String MenuItemName = getDate("MenuItemName"); // 一級(jí)菜單名數(shù)組 parent = MenuCatName.split("/"); // 二級(jí)菜單名數(shù)組 child = MenuGroupName.split("/"); // 三級(jí)菜單名數(shù)組 grandchild = MenuItemName.split("/"); List<SuperTreeViewAdapter.SuperTreeNode> superNodeTree = superAdapter .GetTreeNode(); for (int i = 0; i < parent.length; i++) { SuperTreeViewAdapter.SuperTreeNode superNode = new SuperTreeViewAdapter.SuperTreeNode(); superNode.parent = parent[i]; for (int j = 0; j < child_grandchild.length; j++) { TreeViewAdapter.TreeNode node = new TreeViewAdapter.TreeNode(); node.parent = child_grandchild[j][0][0]; for (int k = 0; k < child_grandchild[j][1].length; k++) { node.childs.add(child_grandchild[j][1][k]); } superNode.childs.add(node); } superNodeTree.add(superNode); } superAdapter.UpdateTreeNode(superNodeTree); expandableListView.setAdapter(superAdapter); }
【SuperTreeViewAdapter】
public ExpandableListView getExpandableListView() { AbsListView.LayoutParams lp = new AbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, TreeViewAdapter.ItemHeight); ExpandableListView superTreeView = new ExpandableListView(parentContext); superTreeView.setLayoutParams(lp); // 去掉子菜單分割線 superTreeView.setDivider(null); return superTreeView; } /** * 三層樹結(jié)構(gòu)中的第二層是一個(gè)ExpandableListView */ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { // 是 final ExpandableListView treeView = getExpandableListView(); final TreeViewAdapter treeViewAdapter = new TreeViewAdapter( this.parentContext, 0); // 臨時(shí)變量取得TreeViewAdapter的TreeNode集合,可為空 List<TreeNode> tmp = treeViewAdapter.getTreeNode(); final TreeNode treeNode = (TreeNode) getChild(groupPosition, childPosition); tmp.add(treeNode); treeViewAdapter.updateTreeNode(tmp); treeView.setAdapter(treeViewAdapter); // 取得選中的二級(jí)樹形菜單的父子節(jié)點(diǎn),結(jié)果返回給外部回調(diào)函數(shù) treeView.setOnChildClickListener(this.stvClickEvent); /** * 第二級(jí)菜單展開時(shí)通過(guò)取得節(jié)點(diǎn)數(shù)來(lái)設(shè)置第三級(jí)菜單的大小 */ treeView.setOnGroupExpandListener(new OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { AbsListView.LayoutParams lp = new AbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, (treeNode.childs .size() + 1) * TreeViewAdapter.ItemHeight + 0); treeView.setLayoutParams(lp); } }); /** * 第二級(jí)菜單回收時(shí)設(shè)置為標(biāo)準(zhǔn)Item大小 */ treeView.setOnGroupCollapseListener(new OnGroupCollapseListener() { @Override public void onGroupCollapse(int groupPosition) { AbsListView.LayoutParams lp = new AbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, TreeViewAdapter.ItemHeight); treeView.setLayoutParams(lp); } }); treeView.setPadding(TreeViewAdapter.PaddingLeft * 2, 0, 0, 0); return treeView; } /** * 三級(jí)樹結(jié)構(gòu)中的首層是TextView,用于作為title */ public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { TextView textView = TreeViewAdapter.getTextView(this.parentContext); textView.setText(getGroup(groupPosition).toString()); // 設(shè)置首層menu標(biāo)題背景 textView.setBackgroundResource(R.drawable.menu_category); textView.setPadding(TreeViewAdapter.PaddingLeft * 2, 0, 0, 0); return textView; }
效果圖:
感謝各位的閱讀!關(guān)于“android如何實(shí)現(xiàn)菜單三級(jí)樹效果”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)站欄目:android如何實(shí)現(xiàn)菜單三級(jí)樹效果
當(dāng)前路徑:http://chinadenli.net/article32/jieppc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站建設(shè)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)