Flutter 在Flatter中从PageView内的页面获取回调

Flutter 在Flatter中从PageView内的页面获取回调,flutter,dart,Flutter,Dart,我有一个页面视图,我想更改包含页面视图的演练屏幕中按钮的颜色: class WalkThroughScreen extends StatefulWidget { @override WalkThroughScreenState createState() => WalkThroughScreenState(); } class WalkThroughScreenState extends State<WalkThroughScreen> { int curren

我有一个页面视图,我想更改包含页面视图的演练屏幕中按钮的颜色:

class WalkThroughScreen extends StatefulWidget {

  @override
  WalkThroughScreenState createState() => WalkThroughScreenState();
}

class WalkThroughScreenState extends State<WalkThroughScreen> {
  int currentIndexPage = 0;
  int pageLength;
  PageController _pageController = PageController(
    initialPage: 0,
  );

  List<Widget> _pages;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: <Widget>[
          Container(
            width: MediaQuery.of(context).size.width,
            height: MediaQuery.of(context).size.height,
            child: PageView(
              controller: _pageController,
              physics: NeverScrollableScrollPhysics(), // verhindert swipen
              children: [
                Welcome()
                SecondPage()
                ],
              onPageChanged: (value) {
                setState(() => currentIndexPage = value);
              },
            ),
          ),
          Positioned(
            bottom: 40,
            left: 0,
            right: 0,
            child: Container(
              padding: EdgeInsets.symmetric(horizontal: 20),
              child: ElevatedButton(
                onPressed: () {
                  _pageController.animateToPage(
                    currentIndexPage + 1,
                    duration: Duration(milliseconds: 200),
                    curve: Curves.linear,
                  );
                },
                style: ElevatedButton.styleFrom(
                  primary: Colors.blue, // background
                  onPrimary: Colors.white, // foreground
                  elevation: 0,
                ),
                child: Container(
                  width: MediaQuery.of(context).size.width,
                  padding: EdgeInsets.symmetric(vertical: 15),
                  alignment: Alignment.center,
                  child: Text(
                    'Next',
                  ),
                ),
              ),
            ),
          ),
        ],
      ),
    );
  }
}
是否可以将按钮置于欢迎页面并与演练屏幕进行通信?我想实施一个逐步注册过程。

“是否可以在欢迎页面中放置按钮并与演练屏幕进行通信?”-只需向
欢迎
类添加一些“回调函数”参数-同样的方法添加
按下
参数
class Welcome extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
          height: double.infinity,
          width: double.infinity,
          child: TextButton(onPressed: () {}, child: Text("Change Color"))),
    );
  }
}