Closed bawangse closed 10 months ago
我看到了这个,好像没法解决,md本身就保证了不同高度 https://github.com/quire-io/scroll-to-index/issues/44
这里有可能的解决方案 https://github.com/quire-io/scroll-to-index/issues/38#issuecomment-737618221
https://pub.dev/packages/scrollable_positioned_list
但是如果用这个的话,需要更改好多。。。
我想做的功能是搜索md的内容,获取index,然后跳转。。。
其实我不明白的是,多看阅读和静读天下怎么做到跳转流畅的?
@bawangse 你好,早期其实markdown_widget
就是使用的 scrollable_positioned_list,不过目前这个库不支持使用SelectionArea
组件,同时也不支持监听具体哪一个 index 的滚动,再加上它的更新比较缓慢,没办法解决我这边的一些需求,所以我就先把库迁移到了 scroll-to-index
不过话说回来,有大量输入源的时候,最好还是使用类似 scrollable_positioned_list
的方案,因为它不是全量渲染的,而是以initialIndex所对应的数据作为渲染起点,即便是海量数据,它的跳转速度也是一样的
不过在 scrollable_positioned_list
解决上面的那些问题前,我暂时不会考虑将它重新接入
但是你可以使用 MarkdownGenerator().buildWidgets(data)
将 markdown
源数据转换为 widget list 然后使用 scrollable_positioned_list
去进行渲染和跳转,如果markdown
源数据过大,可以考虑分段渲染来解决一次性转换太多导致的性能问题
目前关于TOC跳转的相关代码实现的还是比较粗糙,后续我会考虑改进一下
如果你想通过scrollable_positioned_list
去实现跳转的话,可以参考一下 markdown_widget 2.0.0
之前的代码
这个md渲染非常棒!
使用toc跳转的时候,跳到最下面的时候,会非常慢,一边滚动一边渲染,得半天才行。 是这个——》controller.scrollToIndex
我尝试每个item的高度,不过只有渲染出来才能计算高度,胎死腹中。
我应该怎么办?初始 scrollToIndex 到最后再跳到0?不用 ListView.builder 而是一把渲染?