changeset 2782:dff8fb5ddadd

Android: Added layout manager and code to trigger data change updates.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 07 Jul 2022 07:59:23 +0000
parents c28602443759
children 1b7c1b6ee760
files android/DWindows.kt
diffstat 1 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/android/DWindows.kt	Thu Jul 07 00:47:25 2022 +0000
+++ b/android/DWindows.kt	Thu Jul 07 07:59:23 2022 +0000
@@ -52,6 +52,7 @@
 import androidx.core.app.NotificationManagerCompat
 import androidx.core.content.res.ResourcesCompat
 import androidx.core.view.MenuCompat
+import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import androidx.viewpager2.widget.ViewPager2
 import com.google.android.material.tabs.TabLayout
@@ -476,6 +477,7 @@
 
     override fun onCreateViewHolder(parent: ViewGroup, layoutId: Int): DWTreeViewHolder {
         val view = DWTreeItemView(parent.context)
+        parent.addView(view)
         return treeViewHolderFactory.getTreeViewHolder(view, layoutId)
     }
 
@@ -4583,6 +4585,7 @@
                 tree!!.tag = dataArrayMap
                 tree!!.id = cid
                 tree!!.adapter = treeViewAdapter
+                tree!!.layoutManager = LinearLayoutManager(this)
             }
         }
         return tree
@@ -4601,6 +4604,7 @@
             } else {
                 parent.addChild(treeitem!!)
             }
+            treeViewAdapter.notifyDataSetChanged()
         }
         return treeitem
     }
@@ -4628,11 +4632,19 @@
     fun treeItemChange(tree: DWTree, item: DWTreeItem, title: String?, icon: Drawable?)
     {
         waitOnUiThread {
+            var changed = false
+
             if(title != null) {
                 item.setTitle(title)
+                changed = true
             }
             if(icon != null) {
                 item.setIcon(icon)
+                changed = true
+            }
+            if(changed == true) {
+                var treeViewAdapter = tree.adapter as DWTreeViewAdapter
+                treeViewAdapter.notifyDataSetChanged()
             }
         }
     }
@@ -4671,6 +4683,7 @@
             } else {
                 treeViewAdapter.collapseNode(item)
             }
+            treeViewAdapter.notifyDataSetChanged()
         }
     }
 
@@ -4684,6 +4697,7 @@
         waitOnUiThread {
             val treeViewAdapter = tree.adapter as DWTreeViewAdapter
             treeViewAdapter.clear()
+            treeViewAdapter.notifyDataSetChanged()
         }
     }