效果图
这个demo非常简单适合数据量小的处理,就是可以私人定制想要的效果。
核心就是重写popwindow +三个rv
难点是后台给的数据结构是需要算法处理,不是直接的json结构体,A的parentid == B 的 id B就是A的父亲, 我自己用了个算法拿到了树形结构。
核心代码
public static List<Map<String, Object>> handleTree(List<Map<String, Object>> data, String id, String mParentId, String children) {
Map<String, String> config = new HashMap<>();
config.put("id", id != null ? id : "id");
config.put("parentId", mParentId != null ? mParentId : "parentId");
config.put("childrenList", children != null ? children : "children");
Map<String, List<Map<String, Object>>> childrenListMap = new HashMap<>();
Map<String, Map<String, Object>> nodeIds = new HashMap<>();
List<Map<String, Object>> tree = new ArrayList<>();
for (Map<String, Object> d : data) {
String parentId = d.get(config.get("parentId")).toString();
if (!childrenListMap.containsKey(parentId)) {
childrenListMap.put(parentId, new ArrayList<>())