RecyclerView用多層級TreeView,若是層級比較少推薦使用Brvah。直接上圖java
引入:git
compile 'com.kanade:treeadapter:0.1.0'
Json例子結構github
[ { "id": 1, "title": "A1", "level": 1, "pid": 0 }, { "id": 2, "title": "B1", "level": 2, "pid": 1 }, { "id": 3, "title": "C1", "level": 3, "pid": 2 }, { "id": 4, "title": "C2", "level": 3, "pid": 2 }, { "id": 5, "title": "C3", "level": 3, "pid": 2 }, { "id": 6, "title": "B2", "level": 2, "pid": 1 }, { "id": 7, "title": "C4", "level": 3, "pid": 6 }, { "id": 8, "title": "C5", "level": 3, "pid": 6 }, { "id": 9, "title": "D1", "level": 4, "pid": 5 }, { "id": 10, "title": "E1", "level": 5, "pid": 9 } ]
使用:json
public class User implements RvTree{ ... } Type type = new TypeToken<List<User>>(){}.getType(); List<User> list = new Gson().fromJson(testStr, type); // TreeAdapter<User> adapter = new TreeAdapter<>(this, list); TreeAdapter<User> adapter = new TreeAdapter<>(this); // 若不在初始化時指定數據,則會等到執行setNodes時纔會有數據 adapter.setNodes(list); recyclerview.setAdapter(adapter);