From 03a00fe3d26261c58c604437e12295414ea87d5c Mon Sep 17 00:00:00 2001 From: Insality Date: Thu, 1 Apr 2021 21:58:46 +0300 Subject: [PATCH] Update infinity list --- druid/base/static_grid.lua | 1 - druid/extended/infinity_list.lua | 8 +++----- example/page/infinity_page.lua | 4 ++++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/druid/base/static_grid.lua b/druid/base/static_grid.lua index 6191a53..7d05e37 100644 --- a/druid/base/static_grid.lua +++ b/druid/base/static_grid.lua @@ -184,7 +184,6 @@ function StaticGrid.add(self, item, index, shift_policy) end self.nodes[index] = item - gui.set_parent(item, self.parent) -- Add new item instantly in new pos. Break update function for correct positioning diff --git a/druid/extended/infinity_list.lua b/druid/extended/infinity_list.lua index 9a5ac25..faa0ffb 100644 --- a/druid/extended/infinity_list.lua +++ b/druid/extended/infinity_list.lua @@ -18,14 +18,12 @@ function M:init(data_list, scroll, grid, create_function) --- Current visual elements indexes self.top_index = 1 self.last_index = 1 + self.create_function = create_function self._data = {} self._data_first_index = false self._data_last_index = false self._data_length = 0 - - self.create_function = create_function - self._data_visual = {} self.scroll.on_scroll:subscribe(self._check_elements, self) @@ -165,8 +163,8 @@ function M:_check_elements() end end - self:_check_elements_from(self.top_index - 1, -1) - self:_check_elements_from(self.top_index, 1) + self:_check_elements_from(self.top_index, -1) + self:_check_elements_from(self.top_index + 1, 1) for index, data in pairs(self._data_visual) do self.top_index = math.min(self.top_index or index, index) diff --git a/example/page/infinity_page.lua b/example/page/infinity_page.lua index 132d951..1e44cbd 100644 --- a/example/page/infinity_page.lua +++ b/example/page/infinity_page.lua @@ -118,6 +118,10 @@ local function setup_infinity_list(self) return create_infinity_instance_dynamic(self, record, index) end) + timer.delay(1, false, function() + self.infinity_list_dynamic:scroll_to_index(25) + end) + self.infinity_list_dynamic_hor = self.druid:new_infinity_list(data, self.infinity_scroll_dynamic_hor, self.infinity_grid_dynamic_hor, function(record, index) -- function should return gui_node, [druid_component] return create_infinity_instance_dynamic_hor(self, record, index)