gpt4 book ai didi

flutter - 是否有明确的 Sliver 小部件列表

转载 作者:IT老高 更新时间:2023-10-28 12:38:38 27 4
gpt4 key购买 nike

我正在尝试使用 Sliver 来实现可折叠列表标题。当我将小部件从正常更改为 Sliver 时,我经常会遇到如下错误:

I/flutter ( 3141): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 3141): The following assertion was thrown building NotificationListener<ScrollNotification>():
I/flutter ( 3141): A RenderViewport expected a child of type RenderSliver but received a child of type
I/flutter ( 3141): RenderRepaintBoundary.
I/flutter ( 3141): RenderObjects expect specific types of children because they coordinate with their children during
I/flutter ( 3141): layout and paint. For example, a RenderSliver cannot be the child of a RenderBox because a
I/flutter ( 3141): RenderSliver does not understand the RenderBox layout protocol.
I/flutter ( 3141):

I/flutter ( 3141): The RenderViewport that expected a RenderSliver child was created by:
I/flutter ( 3141):   Viewport ← _ScrollableScope ← IgnorePointer-[GlobalKey#307856652] ← Listener ← _GestureSemantics ←
I/flutter ( 3141):   RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#701223524] ← RepaintBoundary ←
I/flutter ( 3141):   CustomPaint ← RepaintBoundary ← NotificationListener<ScrollNotification> ←
I/flutter ( 3141):   GlowingOverscrollIndicator ← Scrollable ← ⋯
I/flutter ( 3141):
I/flutter ( 3141): The RenderRepaintBoundary that did not match the expected child type was created by:
I/flutter ( 3141):   RepaintBoundary ← NotificationListener<ScrollNotification> ← GlowingOverscrollIndicator ←
I/flutter ( 3141):   Scrollable ← SingleChildScrollView ← Viewport ← _ScrollableScope ←
I/flutter ( 3141):   IgnorePointer-[GlobalKey#307856652] ← Listener ← _GestureSemantics ←
I/flutter ( 3141):   RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#701223524] ← RepaintBoundary ← ⋯
I/flutter ( 3141):

我的理解是这是因为普通小部件不能直接用于在 Sliver 小部件中进行渲染。

框架中是否有明确的 Sliver 小部件列表?

sliver.dart 显示不多

最佳答案

RenderSliver 的文档似乎是我们目前最接近最终 Sliver 文档的东西。

RenderSliv​​er

实现
  • RenderSliv​​erHelpers(混合)
  • RenderSliv​​erMultiBoxAdaptor(摘要)
    • RenderSliv​​erFixedExtentBoxAdaptor(摘要)
      • _RenderSliv​​erPrototypeExtentList(具体)
      • RenderSliv​​erFillViewport(具体)
      • RenderSliv​​erFixedExtentList(具体)
    • RenderSliv​​erGrid(具体)
    • RenderSliv​​erList(具体)
  • RenderSliv​​erPadding(具体)
  • RenderSliv​​erPersistentHeader(摘要)
    • RenderSliv​​erFloatingPersistentHeader(具体)
      • RenderSliv​​erFloatingPinnedPersistentHeader(具体)
    • RenderSliv​​erPinnedPersistentHeader(具体)
    • RenderSliv​​erScrollingPersistentHeader(具体)
  • RenderSliv​​erSingleBoxAdapter(摘要)
    • RenderSliv​​erFillRemaining(具体)
    • RenderSliv​​erToBoxAdapter(具体)

这些 RenderSliv​​er 实现由以下小部件创建:

SliverMultiBoxAdaptorWidget 子类:

StatelessWidget 子类:

SingleChildRenderObjectWidget 子类:

因此,当您想要生成 RenderSliv​​er 的实例时,可以使用这些小部件。

当然,随着时间的推移,可能会添加越来越多的 RenderSliv​​er 创建小部件,您也可以自己制作!希望这份 list 足以让您入门。

关于flutter - 是否有明确的 Sliver 小部件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44493372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com