每个粘性标题 Flutter 库如何渲染其内容

问题描述 投票:0回答:1

我有一个应用程序,每个组中可能有数百个元素。

我正在研究这些列表中粘性标题的不同替代方案。我想知道其中是否有任何一个或哪些会按照视图中显示的方式呈现小部件,就像 ListView.builder 所做的那样。

我遇到的替代方案是:

StickyHeaders 似乎没有完成这项工作,因为每个粘性标题及其内容都是 ListView.builder 中的一个元素

谢谢你。

flutter scroll sticky
1个回答
0
投票

在处理每个组中可能包含数百个元素的大型列表并且您需要粘性标题时,必须选择一种能够在视图中显示小部件时有效呈现小部件的解决方案,类似于 ListView.builder。在您提到的三种替代方案中,以下是它们在渲染元素方面的比较:

1.grouped_list(https://pub.dev/packages/grouped_list): 该包为分组列表提供了类似于 ListView.builder 的方法。 它为组提供粘性标题。 小部件按照它们出现在视图中的方式进行渲染。

2.flutter_sticky_header(https://pub.dev/packages/flutter_sticky_header): 该包主要是为粘性标头设计的。 您可以将其与标准 ListView 或 CustomScrollView 结合使用来实现粘性标题。 它允许您自定义标头行为和外观。 如果您根据需要使用 SliverList 和 SliverStickyHeader 设计 CustomScrollView,它应该可以很好地工作。 小部件通常按照它们出现在视图中的方式进行渲染,尽管复杂的用例可能需要细粒度的控制。

3.sticky_headers(https://pub.dev/packages/sticky_headers): 正如您所提到的, Sticky_headers 可能不是您的用例的最佳选择,因为它将每个粘性标头及其内容视为一个元素。 这种方法可能无法有效地处理每个组中的数百个元素,因为您希望它们在视图中出现时进行渲染。

在您的情况下,似乎 grouped_list 包可能是最合适的选择,因为它为分组列表提供了类似 ListView.builder 的体验,并在滚动到视图中时有效地呈现小部件。但是,您应该使用特定用例对其进行测试,以确保它满足您的性能要求。请记住,性能还取决于您如何优化项目小部件以及如何处理数据加载和缓存。

© www.soinside.com 2019 - 2024. All rights reserved.