我找到了你问题的解决方案。这是演示代码
class _DemoState extends State<WidgetDemo> {
ScrollController scrollController = new ScrollController();
bool isVisible = true;
@override
initState() {
super.initState();
scrollController.addListener(() {
if (scrollController.position.userScrollDirection ==
ScrollDirection.reverse) {
if (isVisible)
setState(() {
isVisible = false;
});
}
if (scrollController.position.userScrollDirection ==
ScrollDirection.forward) {
if (!isVisible)
setState(() {
isVisible = true;
});
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget>[
new CustomScrollView(
controller: scrollController,
shrinkWrap: true,
slivers: <Widget>[
new SliverPadding(
padding: const EdgeInsets.all(20.0),
sliver: new SliverList(
delegate: new SliverChildListDelegate(
<Widget>[
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
const Text('My temp data'),
const Text('Wow its working'),
],
),
),
),
],
),
AnimatedContainer(
duration: Duration(milliseconds: 400),
height: isVisible ? 60.0 : 0.0,
child: new Container(
color: Colors.green,
width: MediaQuery.of(context).size.width,
child: Center(child: Text("Container")),
)),
],
),
);
}
}