将flutter的CustomScrollView元素提取到小部件中

我试图将2个Slivers元素提取到一个单独的Widget中。但是无法实现...有什么想法吗? 这是原始代码:

CustomScrollView(
  slivers: <Widget>[
    SliverPersistentHeader(
      pinned: false,delegate: WidgetOne(),),SliverPersistentHeader(
      pinned: true,delegate: WidgetTwo(),WidgetThree(),],)

想法是要有这样的东西:

CustomScrollView(
  slivers: <Widget>[
    SliverPersistentHeader(
      pinned: false,ExtractedWidget()
  ],)

class ExtractedWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return .... 
    // What should be here? Containers etc returns error...
    SliverPersistentHeader(
      pinned: true,}
}

谢谢! PS:此代码的整个逻辑是,首先放置一个固定高度的块,下面放置另一个具有一定高度的块,最后一个是包含各种元素的 list 。事实是,滚动 second 块时应固定。这就是为什么我用这种条子。

lz407854504 回答:将flutter的CustomScrollView元素提取到小部件中

您只能像以下示例一样退回条子:

class ExtractedWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SliverPersistentHeader(
      pinned: true,delegate: WidgetTwo(),);
  }
}

如果您想返回一棵小部件树,则必须找到一个可以容纳该小部件的容器,例如SliverToBoxAdapter,但我不知道SliverPersistentHeader是否可以放置在另一个条子中容器。希望能对您有所帮助。

本文链接:https://www.f2er.com/3156770.html

大家都在问