Flutter 如何使用按钮滚动小部件?
我正在用flatter构建一个WebApp,我有一个SingleChildScrollView,里面有一些小部件。当我按下按钮时,我希望appbar上的按钮将我带到相应的小部件。 可能吗?这里我附上代码的一部分Flutter 如何使用按钮滚动小部件?,flutter,singlechildscrollview,Flutter,Singlechildscrollview,我正在用flatter构建一个WebApp,我有一个SingleChildScrollView,里面有一些小部件。当我按下按钮时,我希望appbar上的按钮将我带到相应的小部件。 可能吗?这里我附上代码的一部分 Widget build(BuildContext context) { return Scaffold( extendBodyBehindAppBar: true, appBar: CustomAppBar(),
Widget build(BuildContext context) {
return Scaffold(
extendBodyBehindAppBar: true,
appBar: CustomAppBar(),
backgroundColor: Colors.white,
body: SingleChildScrollView(
controller: widget.homeController,
child: Column(
children: [
Inicio(),
Services(),
QuienesSomos(),
ContactForm(),
BottomInfo(),
],
),
),
);
}
因此,在SingleChildScrollView中,每个孩子在appbar上都有一个按钮,我希望当我按下对应按钮时,它会向下滚动到小部件上的对应部分。我尝试使用Navigator.of.PushNamed,但它会打开一个新屏幕,而不是向下滚动。有什么想法吗?提前谢谢 要控制位置,必须管理SingleChildScrollView的控制器 如果您想顺利进入某个部分,可以将控制SingleChildScrollView控制器的功能附加到按钮:
widget.homeController.animateTo(
0.0, // change 0.0 {double offset} to corresponding widget position
duration: Duration(seconds: 1),
curve: Curves.easeOut,
);
如果您只想立即跳到该位置:
widget.homeController.jumpTo(0.0); // change 0.0 {double value} to corresponding widget position
我可以通过使用
onPressed: () {
Scrollable.ensureVisible(servicesKey.currentContext,
duration: Duration(seconds: 1),
curve: Curves.easeOut);
},
通过在每个小部件中指定相应的键。这可以在SingleChildScrollView上使用ScrollController。我没有关于hw的答案来做这件事。但是我建议研究一下这个控制器,我有个问题。我试图实现的是使用web颤振的某种登录页。它也有表单等等,所以它有一些WebApps功能,这就是为什么我要使用flatter。问题是,当我改变chrome的大小时,假设它是屏幕的一半,使用这种方法,它会向下滚动到小部件的不同部分。有没有办法滚动到SingleChildScrollView中的特定小部件?里面的每个小部件都是一个网页部分。谢谢