使用Navigator.of(context).overlay抖动多个

时间:2019-07-07 08:00:38

标签: flutter flutter-animation

下面的代码是一个简单的对话框实现,可以在单击按钮以显示并隐藏Container后显示和隐藏container,效果很好,在单击对话框以隐藏container也可以,现在我想再次显示Navigator.of(context).overlayimport 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp(home: Home()); } } class Home extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Directionality( textDirection: TextDirection.rtl, child: Center( child: RaisedButton.icon( icon: Icon(Icons.notifications_active), label: Text('Notify!'), onPressed: () { Navigator.of(context).overlay.insert(OverlayEntry(builder: (BuildContext context) { return SlidingLayer(); })); }, ), ), ), ); } } class SlidingLayer extends StatefulWidget { @override State<StatefulWidget> createState() => SlidingLayerState(); } class SlidingLayerState extends State<SlidingLayer> with SingleTickerProviderStateMixin { AnimationController controller; Animation<Offset> position; @override void initState() { super.initState(); controller = AnimationController(vsync: this, duration: Duration(milliseconds: 750)); position = Tween<Offset>(begin: Offset(0.0, -14.0), end: Offset.zero).animate(CurvedAnimation(parent: controller, curve: Curves.ease)); controller.forward(); } @override Widget build(BuildContext context) { return Material( color: Colors.transparent, child: Align( alignment: Alignment.topCenter, child: Padding( padding: EdgeInsets.only(top: 90.0), child: SlideTransition( position: position, child: Container( margin: EdgeInsets.all(10.0), height: 150.0, width: double.infinity, decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(10.0), boxShadow: [ BoxShadow( color: Colors.black26, blurRadius: 0.9, spreadRadius: 0.5, offset: Offset(0.0, 0.0), ), ]), child: InkWell( onTap: (){ controller.reverse(); }, child: Center( child: Text( 'ssss', style: TextStyle( fontSize: 26.0, ), ), ), ), )), ), ), ); } } 一起使用,无效

完整的源代码:

{{1}}

0 个答案:

没有答案