首页 > 解决方案 > 如何在 CustomScrollView 中使用非银色小部件

问题描述

我正在尝试将 Text 小部件添加到 CustomScrollView 但我遇到了目标不一样的问题。

这是我的小部件:

@override
Widget build(BuildContext context) {
  final double statusBarHeight = MediaQuery.of(context).padding.top;
  return Scaffold(
      key: scaffoldKey,
      body: CustomScrollView(
        semanticChildCount: 2,
        slivers: <Widget>[
          _buildAppBar(context, statusBarHeight),
          Text('test')
        ],
      ));
}

_buildAppBar 方法返回一个 SliverAppBar。

我需要使用 Padding 小部件而不是文本,但我认为它会是一样的,这是同一个问题。

标签: dartflutter

解决方案


我找到了在 CustomScrollView 中使用非条子的更好方法,使用 SliverToBoxAdapter 小部件。将您的非 sliver 小部件作为 SliverToBoxAdapter 小部件的子级并完成您的工作。

return Scaffold(
  body: CustomScrollView(
    slivers: <Widget>[
      SliverToBoxAdapter(
        child: Stack(
          children: <Widget>[
            Container(
              height: 200,
              width: 200,
              color: Colors.green,
            ),
            Positioned(
              child: Container(color: Colors.yellow),
              top: 50,
              left: 50,
            )
          ],
        ),
      )
    ],
  ),
);

这是上面代码的输出


推荐阅读