Multi Roots TreeView implementation for Android Platform with a lot of options and customization

Overview

TreeView

Codacy Badge CodeFactor Min API Level Maven Central

Multi Roots TreeView implementation for Android Platform with a lot of options and customization

Demo

animated animated animated

Features:

- No Custom Views.
- Easy use, customize and extend.
- Support any number of roots.
- Can use a different design for each node.
- Selection mode for nodes.
- Dynamic adding and removing nodes.
- Don't save a reference for the view holder in each node.
- Can handle a large number of nodes without problems.
- Providing on click and on long click listener nodes.
- Easy to override any operations by override `TreeNodeManager`.
- Collapse and Extend node and node branch.
- Collapse and extend nodes by level.
- Collapse and expand all nodes.
- Can perform 2D scrolling without custom layout.

Documentations:

License

MIT License

Copyright (c) 2022 Amr Hesham

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
You might also like...
A powerful library for creating notifications in android platform.
A powerful library for creating notifications in android platform.

Download Download the latest AAR or grab via Maven: dependency groupIdcom.github.halysongoncalves/groupId artifactIdpugnotification/artif

Beagle is an open-source framework for cross-platform development using the concept of Server-Driven UI.
Beagle is an open-source framework for cross-platform development using the concept of Server-Driven UI.

Beagle Getting Started · Learn the Basics · Contribute Beagle is an open-source framework for cross-platform development using the concept of Server-D

Material Design implementation for Android 4.0+. Shadows, ripples, vectors, fonts, animations, widgets, rounded corners and more.
Material Design implementation for Android 4.0+. Shadows, ripples, vectors, fonts, animations, widgets, rounded corners and more.

Carbon Material Design implementation for Android 4.0 and newer. This is not the exact copy of the Lollipop's API and features. It's a custom implemen

Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (https://github.com/romannurik/android-wizardpager)
Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (https://github.com/romannurik/android-wizardpager)

Wizard Pager Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (ht

Proof of concept Android WebView implementation based on Chromium code

Deprecation Notice This project is un-maintained. The recommended alternative is the Crosswalk Project. I did not have the time to keep the project up

Wizard Pager is a library that provides an example implementation of a Wizard UI on Android
Wizard Pager is a library that provides an example implementation of a Wizard UI on Android

Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager.

Fully customizable implementation of
Fully customizable implementation of "Snowfall View" on Android.

Android-Snowfall Fully customizable implementation of "Snowfall View" on Android. That's how we use it in our app Hotellook Compatibility This library

An implementation of tap targets from the Material Design guidelines for feature discovery.
An implementation of tap targets from the Material Design guidelines for feature discovery.

TapTargetView An implementation of tap targets from Google's Material Design guidelines on feature discovery. Min SDK: 14 JavaDoc Installation TapTar

Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the initial data.
Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the initial data.

Android-ProgressFragment Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the init

Comments
  • Storage Folders to Adapter

    Storage Folders to Adapter

    How do I get all the storage folders and add them to the treeViewAdapter? I've tried all sorts of ways, but I can't.

    File root = new File("/storage/emulated/0/");
    for (File file : root.listFiles()) {
        TreeNode node = new TreeNode(file.getName(), R.layout.layout);
    }
    

    The problem is adding the child folders, I don't know how to do this.

    opened by friostd 10
  • multi-select function

    multi-select function

    Hi! First of all thank you for open source such a useful component. In the process of using it, I added the checkbox myself, and wanted to support the check function, but because of my limited level, there were many problems in the process of customization. Will the multi-select function be added in the future?

    opened by Ag-gu 4
  • Use this library

    Use this library

    Hi, I'm a beginner in java and I would like to use this library but I don't understand how to use it. The example is half explained, for example I don't understand what are the parent and child layouts. If you have just a working example it would help me a lot! Thanks

    question 
    opened by polo2169 7
  • How to set Custom magin to every child layout?

    How to set Custom magin to every child layout?

    First of all congratulations to the dev for making this great easy to use TreeView library 👏. Describe the solution you'd like My feature request is about to get a set margin option in TreeNode by default for each child layout. As you did in example projects extended custom class with TreeNode, i also tried the same to set my custom margin method but it didn't work for me. So if you make a default margin option in TreeNode it will be easy for noob devs like me.

    question 
    opened by Premjit-Chowdhury 2
Releases(1.1.1)
Owner
Amr Hesham
Software Engineer interested in Android Development and PL Design
Amr Hesham
An Android library containing a simple TableView and an advanced SortableTableView providing a lot of customisation possibilities to fit all needs.

SortableTableView for Android An Android library providing a TableView and a SortableTableView. Minimum SDK-Version: 11 | Compile SDK-Version: 25 | La

Ingo Schwarz 1.1k Dec 5, 2022
Make your native android Toasts Fancy. A library that takes the standard Android toast to the next level with a variety of styling options. Style your toast from code.

FancyToast-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ... ma

Shashank Singhal 1.2k Dec 26, 2022
Make your native android Dialog Fancy. A library that takes the standard Android Dialog to the next level with a variety of styling options. Style your dialog from code.

FancyAlertDialog-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ..

Shashank Singhal 350 Dec 9, 2022
A full options clock view

Clock View Full options Clock view. You are now able to create and design your own clock view with changing just attributes. Over 20 attributes are av

Belkilani Ahmed Radhouane 65 Dec 9, 2022
Allows you to launch various /hidden/ options of the Oculus Quest (2)

vrLauncher Allows you to launch various /hidden/ options of the Oculus Quest (2) Using it Sideload the apk onto your Oculus Quest (2) Choose the optio

Bastian 153 Dec 25, 2022
Card with swipe options in Jetpack Compose

SwipeableActionCard Card with swipe options in Jetpack Compose Tutorial: Click Here Import SwipeableActionCard library Add this in project level build

Harsh Mahajan 1 Nov 23, 2021
This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementation of a lesson on the Pluralsight platform, but with some code improvements

NoteKeeper-Custom-Widgets This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementati

Ibrahim Mushtaha 3 Oct 29, 2022
Dynamic Speedometer and Gauge for Android. amazing, powerful, and multi shape :zap:

SpeedView Dynamic Speedometer, Gauge for Android. amazing, powerful, and multi shape ⚡ , you can change (colors, bar width, shape, text, font ...every

Anas Altair 1.2k Jan 3, 2023
Android SegmentedControl + multi row support

Android SegmentedControl + multi row support + multi selection minSdk API 14+ Demo App, Play store link Or try demo App online ! Segmented control for

Robert 152 Dec 29, 2022
GreenDroid is a development library for the Android platform. It makes UI developments easier and consistent through your applications.

#GreenDroid Foreword : This project, initially initiated by me, Cyril Mottier, is not maintained anymore and can be considered as deprecated. As a con

Cyril Mottier 2.6k Jan 4, 2023