Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter PageController不作为状态变量工作_Flutter_Dart - Fatal编程技术网

Flutter PageController不作为状态变量工作

Flutter PageController不作为状态变量工作,flutter,dart,Flutter,Dart,当使用myState的build函数中实例化的页面控制器时,我的控制器的行为符合预期。然而,如果我将它作为在状态本身上声明的变量,我似乎根本无法让它工作 作品: class _MyHomePageState extends State<MyHomePage> { var _currentPage = 0; @override Widget build(BuildContext context) { return Scaffold( backgrou

当使用my
State
build
函数中实例化的
页面控制器
时,我的控制器的行为符合预期。然而,如果我将它作为在
状态
本身上声明的变量,我似乎根本无法让它工作

作品:

class _MyHomePageState extends State<MyHomePage> {
  var _currentPage = 0;


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.blueGrey,
      body: PageView(
        physics: NeverScrollableScrollPhysics(),
        controller: PageController(initialPage: _currentPage, keepPage: false, viewportFraction: 0.9),
        children: <Widget>[
          SomeWidget(),
          SomeWidget(),
          SomeWidget(),
        ],

      ),

    );
}
class\u MyHomePageState扩展状态{
var _currentPage=0;
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:颜色。蓝灰色,
正文:页面视图(
物理学:NeverscrollableScroll物理学(),
控制器:PageController(initialPage:_currentPage,keepPage:false,viewportFraction:0.9),
儿童:[
SomeWidget(),
SomeWidget(),
SomeWidget(),
],
),
);
}
不起作用:

class _MyHomePageState extends State<MyHomePage> {
  var _currentPage = 0;
  var _pageController;

  @override
  void initState() {

    super.initState();
    _pageController = PageController(initialPage: _currentPage, keepPage: false, viewportFraction: 0.9);

  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.blueGrey,
      body: PageView(
        physics: NeverScrollableScrollPhysics(),
        controller: _pageController,
        children: <Widget>[
          SomeWidget(),
          SomeWidget(),
          SomeWidget(),
        ],

      ),

    );
}
class\u MyHomePageState扩展状态{
var _currentPage=0;
变量控制器;
@凌驾
void initState(){
super.initState();
_pageController=pageController(initialPage:_currentPage,keepPage:false,viewportFraction:0.9);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:颜色。蓝灰色,
正文:页面视图(
物理学:NeverscrollableScroll物理学(),
控制器:_pageController,
儿童:[
SomeWidget(),
SomeWidget(),
SomeWidget(),
],
),
);
}
对于非工作代码,它甚至不应用
viewportFraction
,就像我在
build
方法本身中实例化它一样


我在这里遗漏了什么?我已经将其与我发现的其他示例进行了比较,但也许我遗漏了一些我完全忘记的东西。

当然,在我发布之后,答案是显而易见的

我的错误是因为我认为在保存更改时重新加载后,我的状态会重新初始化。事实并非如此。重新运行我的应用程序使一切都变得顺利