RecyclerView用多层级TreeView,如果层级比较少推荐使用Brvah。直接上图
image

引入:

compile 'com.kanade:treeadapter:0.1.0'

Json例子结构

[
    {
        "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
    }
]

使用:

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);

团子吃蛋挞
72 声望1 粉丝

软粉