Android 树形结构(AndroidTreeView)github地址:https://github.com/bmelnychuk/AndroidTreeView
引入方式:implementation 'com.github.bmelnychuk:atv:1.2.+'
具体使用请移步github官网
跑了官网的例子,发现父节点勾选后子节点会全部选中,父节点取消勾选后子节点也会全部取消选中
但是在父节点勾选后子节点全部选中的情况下,点击一个子节点不勾选,这时父节点没有取消勾选,居于这种(类似于删除文件有一个没选即不能为全选)使用场景,修改AndroidTreeView项目相关源码
修改主要为ArrowExpandSelectableHeaderHolder.java类
public class ArrowExpandSelectableHeaderHolder extends TreeNode.BaseNodeViewHolder<ArrowExpandSelectableHeaderHolder.IconTreeItem> {
private TextView tvValue;
private PrintView arrowView;
private CheckBox nodeSelector;
public ArrowExpandSelectableHeaderHolder(Context context) {
super(context);
}
@Override
public View createNodeView(final TreeNode node, ArrowExpandSelectableHeaderHolder.IconTreeItem value) {
final LayoutInflater inflater = LayoutInflater.from(context);
final View view = inflater.inflate(R.layout.layout_selectable_header, null, false);
tvValue = (TextView) view.findViewById(R.id.node_value);
tvValue.setText(value.text);
final PrintView iconView = (PrintView) view.findViewById(R.id.icon);
iconView.setIconText(context.getResources().getString(value.ico