Closed SyaoranChang closed 2 years ago
哈喽,你可以拉一下最新的代码,然后利用RefreshCells
这个接口即可。我本地测了下表现正常
if (Input.GetKeyDown(KeyCode.T))
{
var scorll = GetComponent<LoopScrollRect>();
scorll.totalCount = scorll.totalCount + 1;
scorll.RefreshCells();
}
感謝更新 1.剛剛測試發現新增一筆資料並呼叫 RefreshCells()的情況 多試幾次會發現 Scrollbar 常常會沒有變短,且位置沒有更新到
2.想到其他的狀況 如:(1)刪除其中一筆資料,或是(2)排序資料的話 是用 HorizontalScroll_RandomSize 類似的情況,不同大小的 prefab 的 Cell 的話 這種情況應該只能這樣呼叫吧? scorll.totalCount = scorll.totalCount - 1; scorll.RefillCells()
3.請問有辦法取得目前畫面中的最左邊且完整的顯示 Cell 的 Index 嗎? 我想說2-(1)的情況後,想要再呼叫 SrollToCell() 看感覺會不會好點?
剛剛測試發現新增一筆資料並呼叫 RefreshCells()的情況
通过刚pull request的例子我很容易复现到了 🤣 已修复
当删除的时候,RefreshCells
其实也是可以的,因为会检查if (itemTypeEnd < totalCount)
最左边的cell其实就是itemTypeStart
,但是是否完整显示会麻烦一些
当删除的时候,
RefreshCells
其实也是可以的,因为会检查if (itemTypeEnd < totalCount)
1.刪除第1筆資料的時候,如果是呼叫 RefreshCells(),這時的第1個 Cell 並沒有更新成正確的 prefab 並不是把第1個Cell 刪除,讓第2個 Cell往左補上 只是把舊的第一個Cell的內容重新顯示成第2筆資料的數值而已
2.剛測試 新增一筆資料並呼叫 RefreshCells()的情況 Scrollbar 有變短,位置也有更新了 感謝修正~
3.關於變數 itemTypeStart 似乎外部無法取得這個資料?
1.刪除第1筆資料的時候,如果是呼叫 RefreshCells(),這時的第1個 Cell 並沒有更新成正確的 prefab 並不是把第1個Cell 刪除,讓第2個 Cell往左補上 只是把舊的第一個Cell的內容重新顯示成第2筆資料的數值而已
对,因为之前我只考虑单个prefab的情况所以只需要原地刷新。multi prefab的时候确实只能先Clear在Refresh了。
itemTypeStart
可以加个public getter
对,因为之前我只考虑单个prefab的情况所以只需要原地刷新。multi prefab的时候确实只能先Clear在Refresh了。
itemTypeStart
可以加个public getter
LoopScrollRect.cs 新增了 GetItemTypeStart() 也調整了一些東西,請你看看覺得如何了 Change namespace to avoid conflict #110
關於 SrollToCell() 不知道多一個 移動時間 的模式不知道好不好改?
因為新修改有衝突 所以我重新改寫然後重新 pull request 了 InitOnStart_Custom add Button.onClick event and more #112
抱歉这两天 工作的事情有点忙orz 我元旦假期的时候在一起处理下
我优化了下GetItemTypeStart()
函数,现在是返回精确的第一个显示着的item 并带上offset信息(因为可能Hierarchy里看到的第一个元素实际上是在view bounds之外的) 这样就能在删掉某个元素之后,精确的保持内容不变了~ 不知道这样是否更符合你的需求
關於 SrollToCell() 不知道多一個 移動時間 的模式不知道好不好改?
这个好办,如果今天下班早 晚上就可以搞定orz
我优化了下
GetItemTypeStart()
函数,现在是返回精确的第一个显示着的item 并带上offset信息(因为可能Hierarchy里看到的第一个元素实际上是在view bounds之外的) 这样就能在删掉某个元素之后,精确的保持内容不变了~ 不知道这样是否更符合你的需求
很感謝你的幫助~ 這就是我想要的結果
我额外实现了一个ScrollToCellWithinTime
接口,其实本质还是计算距离之后换算速度 调用老的SrollToCell
接口
感謝了
新增了 SrollToCellWithTime 的範例 DemoScene_MultiCell.unity Add SrollToCellWithTime sample #115
你好,
如果原先只有10筆資料,動態加了1筆資料 也是呼叫 RefillCells() 嗎? 目前呼叫 RefillCells() 後 Scroll 位置會歸0 要怎麼樣才能 拖曳到第5個時,動態增加資料後,Scroll 位置 還是在第5個的位置呢?