我正在尝试向 CustomScrollView 添加一个 Text 小部件,但我遇到了目标不一样的问题。
这是我的小部件:
@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')
],
));
}
Run Code Online (Sandbox Code Playgroud)
_buildAppBar 方法返回一个 SliverAppBar。
我需要使用 Padding 小部件而不是文本,但我认为它会是一样的,这是同样的问题。
Dha*_*rma 18
我找到了一种在 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,
)
],
),
)
],
),
);
Run Code Online (Sandbox Code Playgroud)
Mig*_*ivo -6
一旦您使用了 slivers,您就需要使用 sliver child 来包裹其他非 sliver 小部件。既然您想使用Padding,您实际上可以利用该SliverPadding小部件,该小部件接受您Text作为其子项。
因此,与其拥有Text('test')现有的,不如用替代的SliverPadding(child: Text('test))。
您可能需要了解一些条子小部件。请查看Collin Jackson 接受的答案以及Slivers,Demystified文章,以便更好地理解。
| 归档时间: |
|
| 查看次数: |
2819 次 |
| 最近记录: |