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"))),
);
}
}