我目前正在学习Flutter,并坚持使用它。我也是编程的新手,所以请对说明保持谨慎:)。
我正在尝试为自己建立一个学习项目网站。网站一般由2个小部件组成。 3页的AppBar和PageView。我创建了这个
现在,从这两个文件中可以看到,标头和主体是单独的文件。
我也想从标题中触发上一页或下一页按钮。我将它们连接到他们的页码,但我想弄清楚如何从标头中做到这一点。
谢谢。
答案 0 :(得分:0)
我如下解决了这个问题;
创建了一个用于包含页码的类,并通知侦听器以进行页面更改。
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方法。