flutter - 当CustomScrollView在颤动中滚动时如何隐藏appbar
问题描述
我正在使用颤振来显示一些 html 页面,当 CustomScrollView 向上滚动时是否可以隐藏 appBar?然后我可以有更多的屏幕区域来显示 html 内容。这是我当前的代码片段:
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:Cruise/src/component/comment_list.dart';
import 'package:Cruise/src/component/story_information.dart';
import 'package:Cruise/src/models/Item.dart';
import 'package:Cruise/src/common/Repo.dart';
class StoryPage extends HookWidget {
const StoryPage({
Key key,
@required this.item,
}) : super(key: key);
final Item item;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Cruise'),
actions: [
if (item.parent != null)
IconButton(
icon: Icon(Feather.corner_left_up),
onPressed: () async {
Item parent = await Repo.fetchItem(item.parent);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => StoryPage(item: parent)),
);
},
),
],
),
body: CustomScrollView(
slivers: [
SliverToBoxAdapter(child: StoryInformation(item: item)),
CommentList(item: item)
],
),
);
}
}
解决方案
您可以使用SliverChildBuilderDelegate来实现这一点,
Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
title: Text('data'),
),
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) => Text(
index.toString(),
),
childCount: 300),
),
],
),
);
推荐阅读
- mysql - 如何将 SQL 查询的结果输出到报表表格中?
- typescript - tsc 时 webpack 无法捆绑文件
- excel - 取消合并表以从两列创建唯一值
- ios - 在 iOS App 中以指定语言显示系统 UI
- python - Tkinter 网格系统:排列元素
- python - python缺少1个必需的位置参数
- php - 未捕获的错误:在 C 中找不到类 'PHPMailer\PHPMailer\Exception'
- jmeter - 有没有办法以编程方式确定 JMeter 是否在“功能测试模式”下运行?
- python - 将数据列表列表转换为python中的矩阵(检查内部)
- html - Angular Material 表单字段外观填充大小