安卓多级列表的简单实现
生活随笔
收集整理的這篇文章主要介紹了
安卓多级列表的简单实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TreeRecycleView
1.實體類數據
//層級private int level;//狀態,打開或者關閉private boolean isOpen;//當前行的數據private HashMap<String, String> obj;//當前行的子數據private List<TreeItem> child; 復制代碼實體類數據包括了層級、打開或者關閉的狀態、當前行的數據和當前行的子數據
2.數據初始化
// 第一層數據初始化ArrayList<TreeItem> list = new ArrayList<>();TreeItem treeItem0 = getTreeItem(0, "第一層0");TreeItem treeItem1 = getTreeItem(0, "第一層1");TreeItem treeItem2 = getTreeItem(0, "第一層2");list.add(treeItem0);list.add(treeItem1);list.add(treeItem2);// 第二層數據初始化ArrayList<TreeItem> list0_0 = new ArrayList<>();TreeItem treeItem0_0 = getTreeItem(1, "第二層0");TreeItem treeItem0_1 = getTreeItem(1, "第二層1");TreeItem treeItem0_2 = getTreeItem(1, "第二層2");list0_0.add(treeItem0_0);list0_0.add(treeItem0_1);list0_0.add(treeItem0_2);treeItem0.addChilds(list0_0);// 第三層數據初始化ArrayList<TreeItem> list0_0_0 = new ArrayList<>();TreeItem treeItem0_0_0 = getTreeItem(2, "第三層0");TreeItem treeItem0_0_1 = getTreeItem(2, "第三層1");TreeItem treeItem0_0_2 = getTreeItem(2, "第三層2");list0_0_0.add(treeItem0_0_0);list0_0_0.add(treeItem0_0_1);list0_0_0.add(treeItem0_0_2);treeItem0_0.addChilds(list0_0_0)treeAdapter.setDatas(list); 復制代碼數據的初始化一層套一層,初始化第一層然后再將第二層的數據掛在第一層,如果有下一層以此類推。
3.繼承TreeAdapter,實現onCreateViewHolder方法和getItemViewType方法,你可以實現多布局多樣式,也可以自主做各種動作或者從網絡獲取下一層數據,擴展性很強,可以隨自己需要設定。
if (model.isOpen()){doClose(position, model);}else{doOpen(position, model);} 復制代碼上面列出的是一個重要的代碼,在某項被點擊的時候,通過狀態然后調用doClose或者doOpen,只要數據設置沒有問題,父類會自動實現展開和關閉并加上平滑的動畫。
Github地址 希望對大家的學習和工作能有幫助
總結
以上是生活随笔為你收集整理的安卓多级列表的简单实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Access数据库中使用SQL查询分析
- 下一篇: android获取webview url