我正在尝试理解类导航器 .
导航器路径似乎总是返回一个新的小部件,但是如果我想管理 TabBar 和 TabBarView 以便在点击或滑动时每个选项卡将被推送到导航器堆栈,我找不到该怎么做 .
TabBar
TabBarView
在更一般的情况下,我是否可以在不创建新窗口小部件的情况下对路径更改做出反应,而是采取其他操作,例如滚动到 listView 中的特定项目?
listView
我已经尝试过每次都重新创建整个应用程序结构,但这样做我没有很好的默认动画,而且对我来说似乎也不是一个好方法 .
您可以使用WillPopScope小部件及其onWillPop来捕获后退按钮压力并自行处理 . 在此处查找更多信息https://docs.flutter.io/flutter/widgets/WillPopScope-class.html
在更一般的情况下,我可以在不创建新窗口小部件的情况下对路径更改做出反应,而是采取其他操作,例如滚动到listView中的特定项目吗?
这看起来更具体而不是一般 . 但是,您需要在 ListView 中设置 ScrollController 并让它将列表滚动到所需的位置 . 一个简单的示例函数返回顶部:
ListView
ScrollController
class MyFancyClass extends StatelessWidget{ ... ScrollController _scrollController; ... @override Widget build(BuildContext Context){ return .... new ListView( ... controller: _scrollController, ... } void _toTop() { _scrollController.animateTo( 0.0, duration: const Duration(milliseconds: 500), curve: Curves.ease, ); }
检查https://docs.flutter.io/flutter/widgets/ScrollController-class.html以获取更多详细信息和行为 . 如果你想让后退按钮带你到顶部:
Widget build(BuildContext context) { return new WillPopScope( onWillPop: _onTop, child: ... ), ); }
关于标签行为,我建议您阅读https://docs.flutter.io/flutter/material/TabController-class.html以更好地了解如何实现您的想法 .
1 回答
您可以使用WillPopScope小部件及其onWillPop来捕获后退按钮压力并自行处理 . 在此处查找更多信息https://docs.flutter.io/flutter/widgets/WillPopScope-class.html
这看起来更具体而不是一般 . 但是,您需要在
ListView
中设置ScrollController
并让它将列表滚动到所需的位置 . 一个简单的示例函数返回顶部:检查https://docs.flutter.io/flutter/widgets/ScrollController-class.html以获取更多详细信息和行为 . 如果你想让后退按钮带你到顶部:
关于标签行为,我建议您阅读https://docs.flutter.io/flutter/material/TabController-class.html以更好地了解如何实现您的想法 .