Mercurial > dwindows
changeset 2799:fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
Touching anywhere else on the row will select the node.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 17 Jul 2022 00:26:33 +0000 |
parents | a3d62de81ec0 |
children | 56eab3a84b62 |
files | android/DWindows.kt |
diffstat | 1 files changed, 21 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/android/DWindows.kt Sat Jul 16 21:46:35 2022 +0000 +++ b/android/DWindows.kt Sun Jul 17 00:26:33 2022 +0000 @@ -497,27 +497,35 @@ override fun onBindViewHolder(holder: DWTreeViewHolder, position: Int) { val currentNode: DWTreeItem = treeItemManager.get(position) holder.bindTreeItem(currentNode) + val treeItemView = holder.itemView as DWTreeItemView + + // Handle touch on the expand/collapse image + treeItemView.expandCollapseView.setOnClickListener { v -> + // Handle node expand and collapse event + if (!currentNode.getChildren().isEmpty()) { + val isNodeExpanded: Boolean = currentNode.isExpanded() + if (isNodeExpanded) collapseNode(currentNode) else expandNode(currentNode) + currentNode.setExpanded(!isNodeExpanded) + + notifyDataSetChanged() + + // Handle DWTreeItem expand listener event + if (!isNodeExpanded && treeItemExpandListener != null) treeItemExpandListener!!( + currentNode, + v + ) + } + } + // Handle node selection holder.itemView.setOnClickListener { v -> - // Handle node selection + // If touched anywhere else, change the selection currentNode.setSelected(true) - val treeItemView = holder.itemView as DWTreeItemView treeItemView.isChecked = true currentSelectedItem?.setSelected(false) currentSelectedItemView?.isChecked = false currentSelectedItem = currentNode currentSelectedItemView = treeItemView - // Handle node expand and collapse event - if (!currentNode.getChildren().isEmpty()) { - val isNodeExpanded: Boolean = currentNode.isExpanded() - if (isNodeExpanded) collapseNode(currentNode) else expandNode(currentNode) - currentNode.setExpanded(!isNodeExpanded) - // Handle DWTreeItem expand listener event - if (!isNodeExpanded && treeItemExpandListener != null) treeItemExpandListener!!( - currentNode, - v - ) - } notifyDataSetChanged() // Handle DWTreeItem click listener event