问题描述
我想用代码更改 scrollView 的偏移量,所以我使用 ScrollController
:
ScrollController _controller;
_controller.addListener(() {
print('call listener');
});
我改变偏移量的方法:
_controller.jumpTo(200);
它会回调监听器一次。
或
_controller.animateto(200,duration: Duration(milliseconds: 1),curve: Curves.linear);
它也会回调监听器。
我想知道有没有办法在没有回调侦听器的情况下更改 scrollView 偏移量。
这是我所有的代码,你可以复制和测试:
import 'package:Flutter/material.dart';
class SingleChildScrollViewDemoPage extends StatefulWidget {
SingleChildScrollViewDemoPage({Key key}) : super(key: key);
@override
_SingleChildScrollViewDemoPageState createState() =>
_SingleChildScrollViewDemoPageState();
}
class _SingleChildScrollViewDemoPageState
extends State<SingleChildScrollViewDemoPage> {
ScrollController _controller;
@override
void initState() {
super.initState();
_controller = ScrollController();
_controller.addListener(() {
print('call listener');
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('SingleChildScrollView')),body: SingleChildScrollView(
controller: _controller,child: Column(
children: [
RaisedButton(
child: Text('change offset'),onpressed: () {
//_controller.jumpTo(200);
_controller.animateto(200,curve: Curves.linear);
},),Container(
width: 375,height: 200,color: Colors.red,SizedBox(height: 30),height: 3000,color: Colors.green,],);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)