Class TreeViewAdapter

java.lang.Object
androidx.recyclerview.widget.RecyclerView.Adapter<TreeViewHolder>
com.amrdeveloper.treeview.TreeViewAdapter

public class TreeViewAdapter extends androidx.recyclerview.widget.RecyclerView.Adapter<TreeViewHolder>
Custom RecyclerView.Adapter used to provide a tree view features on any RecyclerView
  • Constructor Details

    • TreeViewAdapter

      public TreeViewAdapter(TreeViewHolderFactory factory)
      Simple constructor
      Parameters:
      factory - a View Holder Factory mapped with layout id's
    • TreeViewAdapter

      public TreeViewAdapter(TreeViewHolderFactory factory, TreeNodeManager manager)
      Constructor used to accept user custom TreeNodeManager class
      Parameters:
      factory - a View Holder Factory mapped with layout id's
      manager - a custom tree node manager class
  • Method Details

    • onCreateViewHolder

      @NonNull public TreeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int layoutId)
      Specified by:
      onCreateViewHolder in class androidx.recyclerview.widget.RecyclerView.Adapter<TreeViewHolder>
    • onBindViewHolder

      public void onBindViewHolder(@NonNull TreeViewHolder holder, int position)
      Specified by:
      onBindViewHolder in class androidx.recyclerview.widget.RecyclerView.Adapter<TreeViewHolder>
    • getItemViewType

      public int getItemViewType(int position)
      Overrides:
      getItemViewType in class androidx.recyclerview.widget.RecyclerView.Adapter<TreeViewHolder>
    • getItemCount

      public int getItemCount()
      Specified by:
      getItemCount in class androidx.recyclerview.widget.RecyclerView.Adapter<TreeViewHolder>
    • collapseNode

      public void collapseNode(TreeNode node)
      Collapsing node and all of his children
      Parameters:
      node - The node to collapse it
    • expandNode

      public void expandNode(TreeNode node)
      Expanding node and all of his children
      Parameters:
      node - The node to expand it
    • collapseNodeBranch

      public void collapseNodeBranch(TreeNode node)
      Collapsing full node branches
      Parameters:
      node - The node to collapse it
    • expandNodeBranch

      public void expandNodeBranch(TreeNode node)
      Expanding node full branches
      Parameters:
      node - The node to expand it
    • expandNodeToLevel

      public void expandNodeToLevel(TreeNode node, int level)
      Expanding one node branch to until specific level
      Parameters:
      node - to expand branch of it until level
      level - to expand node branches to it
    • expandNodesAtLevel

      public void expandNodesAtLevel(int level)
      Expanding all tree nodes branches to until specific level
      Parameters:
      level - to expand all nodes branches to it
    • collapseAll

      public void collapseAll()
      Collapsing all nodes in the tree with their children
    • expandAll

      public void expandAll()
      Expanding all nodes in the tree with their children
    • updateTreeNodes

      public void updateTreeNodes(List<TreeNode> treeNodes)
      Update the list of tree nodes
      Parameters:
      treeNodes - The new tree nodes
    • clearTreeNodes

      public void clearTreeNodes()
      Delete all tree nodes
    • setTreeNodeClickListener

      public void setTreeNodeClickListener(TreeViewAdapter.OnTreeNodeClickListener listener)
      Register a callback to be invoked when this TreeNode is clicked
      Parameters:
      listener - The callback that will run
    • setTreeNodeLongClickListener

      public void setTreeNodeLongClickListener(TreeViewAdapter.OnTreeNodeLongClickListener listener)
      Register a callback to be invoked when this TreeNode is clicked and held
      Parameters:
      listener - The callback that will run
    • setTreeNodes

      public void setTreeNodes(List<TreeNode> treeNodes)
      Set the current visible tree nodes and notify adapter data
      Parameters:
      treeNodes - New tree nodes
    • getTreeNodes

      public List<TreeNode> getTreeNodes()
      Get the Current visible Tree nodes
      Returns:
      The visible Tree nodes main
    • getSelectedNode

      public TreeNode getSelectedNode()
      Returns:
      The current selected TreeNode