Fix scroll_to_index in data_list

This commit is contained in:
Insality
2021-04-05 22:50:20 +03:00
parent 4f621274c1
commit c3f1b38a8a
3 changed files with 16 additions and 6 deletions

View File

@@ -178,9 +178,13 @@ end
-- @tparam DataList self
-- @tparam number index
function DataList.scroll_to_index(self, index)
self.top_index = helper.clamp(index, 1, #self._data)
local target = helper.clamp(index, 1, #self._data)
self.top_index = target
self:_refresh()
self.scroll.on_scroll:trigger(self:get_context(), self)
if self._data_visual[target] then
self.scroll:scroll_to(gui.get_position(self._data_visual[target].node), true)
end
end
@@ -241,8 +245,8 @@ function DataList._check_elements(self)
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, 1)
for index, data in pairs(self._data_visual) do
self.top_index = math.min(self.top_index or index, index)