Want to hide FloatingActionButton in Flutter? Use the below flutter example to hide FloatingActionButton in Flutter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; void main() { runApp(new MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return new MaterialApp( title: 'Flutter Demo', theme: new ThemeData( primarySwatch: Colors.blue, ), home: new MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => new _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { int _counter = 0; ScrollController _hideButtonController; void _incrementCounter() { setState(() { _counter++; }); } var _isVisible; @override initState(){ super.initState(); _isVisible = true; _hideButtonController = new ScrollController(); _hideButtonController.addListener((){ if(_hideButtonController.position.userScrollDirection == ScrollDirection.reverse){ if(_isVisible == true) { /* only set when the previous state is false * Less widget rebuilds */ print("**** ${_isVisible} up"); //Move IO away from setState setState((){ _isVisible = false; }); } } else { if(_hideButtonController.position.userScrollDirection == ScrollDirection.forward){ if(_isVisible == false) { /* only set when the previous state is false * Less widget rebuilds */ print("**** ${_isVisible} down"); //Move IO away from setState setState((){ _isVisible = true; }); } } }}); } @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title: new Text(widget.title), ), body: new Center( child: new CustomScrollView( controller: _hideButtonController, shrinkWrap: true, slivers: <Widget>[ new SliverPadding( padding: const EdgeInsets.all(20.0), sliver: new SliverList( delegate: new SliverChildListDelegate( <Widget>[ const Text('I\'m dedicating every day to you'), const Text('Domestic life was never quite my style'), const Text('When you smile, you knock me out, I fall apart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('And I thought I was so smart'), const Text('I realize I am crazy'), ], ), ), ), ], ) ), floatingActionButton: new Visibility( visible: _isVisible, child: new FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: new Icon(Icons.add), ), ), ); } } |
If you like this question & answer and want to contribute, then write your question & answer and email to freewebmentor[@]gmail.com. Your question and answer will appear on FreeWebMentor.com and help other developers.