Flutter - 触发另一个小部件方法,该小部件在另一个文件中

Flutter - Triggering another widgets method which widget is in another file

我目前正在学习 Flutter 并坚持使用这个。我也是编程新手,所以请温和地解释 :)。

我正在尝试为自己建立一个网站作为一个学习项目。网站通常由 2 个小部件组成。 3 个页面的 AppBar 和 PageView。这是我创造的;

现在,header 和 body 是单独的文件,您可以从这 2 个文件中看到。

我也想从 header 触发上一页或下一页按钮。我会将它们连接到它们的页码,但我想弄清楚如何从 header.

做到这一点

谢谢。

我解决了这个问题如下;

创建了一个 class 用于包含页码并通知侦听器页面更改。

class PageState extends ChangeNotifier {
  var _currentpage = 0;

  setPage(int pageNum) {
    if (pageNum != _currentpage) {
      _currentpage = pageNum;
      print(currentPage);
      notifyListeners();
    }
  }

  int get currentPage => _currentpage;
}

为正文部分的当前页面更改创建了一个侦听器,如下所示;

    @override
  Widget build(BuildContext context) {
    var statepage = Provider.of<PageState>(context, listen: false);

    void goToPage() {
      pageStateControl.animateToPage(statepage.currentPage,
          duration: Duration(seconds: 1), curve: Curves.easeInCubic);
    }

    statepage.addListener(goToPage);

每当页码发生变化时,状态页面侦听器就会触发页面视图小部件文件内的 goToPage 方法。