У меня есть код ниже, который изменяет непрозрачность fab при прокрутке пользователя вниз или вверх. но для этого я так много раз вызываю метод setState()
. Есть ли способ обнаружить последнее прокручиваемое пользователем направление, чтобы я мог вызвать setState()
в этот момент только Один раз ? Или я признателен, если вы можете определить новую расширенную функцию для этого.
@override
void initState() {
super.initState();
_controller = ScrollController()
..addListener(() {
upDirection = _controller.position.userScrollDirection == ScrollDirection.forward;
upDirection = _controller.position.userScrollDirection == ScrollDirection.reverse;
if (upDirection)
setState(() {
_scrolled = 0.5;
flag = false;
});
else if (!upDirection) {
setState(() {
_scrolled = 1.0;
});
flag = false;
}
});
}
А вот список
return Scaffold(
body:
SingleChildScrollView(
controller: _controller,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(),
Container(),
Container(),
Container(),
Container(),
Container(),
],
),
),
),
floatingActionButton: AnimatedOpacity(
opacity: _scrolled,
duration: Duration(milliseconds: 100),
child: FloatingActionButton(
onPressed: (){},
child: Icon(Icons.settings),
),
),
floatingActionButtonLocation: FloatingActionButtonLocation.endFloat,
);