列表控件:多级树(第三方AndroidTreeView)

这篇博客介绍了如何利用第三方库AndroidTreeView在Android中创建一个多级树状列表。通过分析框架,展示了如何展示年级、班级和学生的层级结构,并实现了单选与多选功能。还提供了Fragment代码、ViewHolder及布局文件的示例。
摘要由CSDN通过智能技术生成

第三方框架AndroidTreeView官方网址Github Demo其中使用到一个 第三方图标框架Print 。

不使用图标库框架Print(因为不需要)。

分析第三方框架AndroidTreeView:

        每一层使用LinearLayout添加内部节点(TreeNodeWrapperView)。

一、实现的功能

        默认显示所有年级名称;点击某一个年级,加载其所有班级名称;点击某一班级,加载其所有学生名称。年级、班级单选,学生可多选。选择的项文字变红,没选择的是黑色。相应的箭头会根据状态改变。

二、运行效果

三、功能代码

因为功能需求,在library的AndroidTreeView中新增了一个方法:

   //新增函数:只展开自己;收缩自己及子节点
    public void toggleNode(TreeNode node,boolean includeSubnodes) {
        if (node.isExpanded()) {
            collapseNode(node, includeSubnodes);//收缩所有,包括子节点
        } else {
            expandNode(node, false);//只展开自己
        }

    }

Fragment代码:

功能逻辑处理整个过程

public class MoreListFragment extends Fragment {

    private TextView tvShow;
    private ViewGroup containerView;
    private AndroidTreeView tView;

    private TreeNode choseGradeNode;//已选的年级节点
    private String choseGradeStr;//已选的年级值
    private List<TreeNode> initGradeList = new ArrayList<>();//已初始化班级节点的年级
    private TreeNode choseClassNode;//已选的班级节点
    private String choseClassStr;//已选的班级值
    private List<TreeNode> initClassList = new ArrayList<>();//已初始化学生节点的班级
    private List<String> choseStudentList = new ArrayList<>();//已选的学生值
    private int nodeCount = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_default, null, false);
        containerView = (ViewGroup) rootView.findViewById(R.id.container);
        tvShow = (TextView) rootView.findViewById(R.id.status_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值