最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android實(shí)現(xiàn)菜單三級(jí)樹(shù)效果

 更新時(shí)間:2018年11月21日 16:36:51   作者:Geek_AnJon  
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)菜單三級(jí)樹(shù)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了android實(shí)現(xiàn)菜單三級(jí)樹(shù)展示的具體代碼,供大家參考,具體內(nèi)容如下

以下是部分代碼,完整代碼請(qǐng)?jiān)谧钕旅纥c(diǎn)擊下載:

【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;
 }
 
 /**
 * 三層樹(shù)結(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í)樹(shù)形菜單的父子節(jié)點(diǎn),結(jié)果返回給外部回調(diào)函數(shù)
 treeView.setOnChildClickListener(this.stvClickEvent);
 
 /**
  * 第二級(jí)菜單展開(kāi)時(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í)樹(shù)結(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;
 }

效果圖:

完整代碼下載地址

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android 常見(jiàn)bug匯總及解決方案

    Android 常見(jiàn)bug匯總及解決方案

    這篇文章主要介紹了Android 常見(jiàn)bug匯總及解決方案,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下
    2021-03-03
  • Android應(yīng)用的LinearLayout中嵌套R(shí)elativeLayout的布局用法

    Android應(yīng)用的LinearLayout中嵌套R(shí)elativeLayout的布局用法

    這篇文章主要介紹了Android應(yīng)用的LinearLayout中嵌套R(shí)elativeLayout的布局用法,文后還給出了線性布局中一些組件位置的調(diào)試經(jīng)驗(yàn),需要的朋友可以參考下
    2016-04-04
  • Android Studio實(shí)現(xiàn)音樂(lè)播放器

    Android Studio實(shí)現(xiàn)音樂(lè)播放器

    這篇文章主要為大家詳細(xì)介紹了Android Studio實(shí)現(xiàn)音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Android BottomNavigationView底部導(dǎo)航效果

    Android BottomNavigationView底部導(dǎo)航效果

    這篇文章主要為大家詳細(xì)介紹了Android BottomNavigationView底部導(dǎo)航效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Kotlin中的5種單例模式示例詳解

    Kotlin中的5種單例模式示例詳解

    這篇文章主要給大家介紹了關(guān)于Kotlin中5種單例模式的相關(guān)資料,分別包括了餓漢式、懶漢式 、線程安全的懶漢式 、雙重校驗(yàn)鎖式以及靜態(tài)內(nèi)部類式,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • Android Studio如何為Activity添加自定義注解信息

    Android Studio如何為Activity添加自定義注解信息

    好久沒(méi)用寫文章了,今天給大家分享Android Studio如何為Activity添加自定義注解信息,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-06-06
  • Android仿QQ復(fù)制昵稱效果

    Android仿QQ復(fù)制昵稱效果

    這幾天做一個(gè)復(fù)制文本的需求,突然看到QQ上復(fù)制昵稱跟QQ號(hào)的效果,覺(jué)得很不錯(cuò),就想要模仿一波,辦法比較簡(jiǎn)單粗暴,反編譯QQ獲取了那個(gè).9圖片,然后就是用PopWindow實(shí)現(xiàn)了,需要的朋友可以參考下
    2019-05-05
  • Andriod Studio實(shí)現(xiàn)保存QQ密碼功能(案例代碼詳解)

    Andriod Studio實(shí)現(xiàn)保存QQ密碼功能(案例代碼詳解)

    這篇文章主要介紹了Andriod Studio實(shí)現(xiàn)保存QQ密碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • android采用FFmpeg實(shí)現(xiàn)音視頻合成與分離

    android采用FFmpeg實(shí)現(xiàn)音視頻合成與分離

    這篇文章主要為大家詳細(xì)介紹了android采用FFmpeg實(shí)現(xiàn)音視頻合成與分離,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Android studio實(shí)現(xiàn)滑動(dòng)開(kāi)關(guān)

    Android studio實(shí)現(xiàn)滑動(dòng)開(kāi)關(guān)

    這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)滑動(dòng)開(kāi)關(guān),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03

最新評(píng)論

依兰县| 湟源县| 建德市| 泌阳县| 鹰潭市| 增城市| 沛县| 长阳| 德庆县| 徐水县| 清流县| 衡水市| 铜梁县| 沁水县| 吉安县| 永仁县| 太和县| 本溪市| 高唐县| 南岸区| 澜沧| 洪湖市| 巧家县| 兴隆县| 宿迁市| 建宁县| 安乡县| 墨玉县| 焉耆| 道孚县| 玉门市| 察隅县| 玛沁县| 威信县| 靖安县| 澄江县| 新巴尔虎左旗| 项城市| 徐闻县| 扶风县| 嵊泗县|