我试图在有动画的页面之间传递(实际上我使用其他页面的左填充)和墨迹小部件,但我不能将其他页面的参数按钮发送到主页.这里是我的主页代码。
import 'ui/onboard1_secili_ve_pasif_daireler.dart';
import 'package:flutter/material.dart';
class OnboardingOne extends StatefulWidget {
@override
_OnboardingOneState createState() => _OnboardingOneState();
}
class _OnboardingOneState extends State<OnboardingOne> {
@override
Widget build(BuildContext context) {
final queryData = MediaQuery.of(context).size;
double distance = 1;
return Stack(
children: <Widget>[
Background(),
Positioned(
bottom: queryData.height * 0.498,
right: queryData.width * 0.249,
child: Ellipse()),
contentOne(context),
AnimatedContainer(
height: queryData.height * 1,
duration: Duration(milliseconds: 750),
margin: EdgeInsets.only(right: queryData.width * uzaklik),
child: contentTwo(context,2,1),
),
altKisim(context, 2,(){
setState(() {
debugPrint("ran");
distance =0;
});
}),
],
);
}
}
//how can i pull function of inkwell to OnboardingOne widget
Widget altKisim(BuildContext context, int kacinciEkran, Function onTap) {
return Positioned(
top: MediaQuery.of(context).size.height - 100,
left: (MediaQuery.of(context).size.width / 2) - 32,
child: Row(
children: <Widget>[
nokta(kacinciEkran == 1 ? true : false),
nokta(kacinciEkran == 2 ? true : false),
nokta(kacinciEkran == 3 ? true : false),
kacinciEkran != 3
? Padding(
padding: EdgeInsets.fromLTRB(
(MediaQuery.of(context).size.width / 2) - 100, 0, 0, 0),
child: InkWell(
child: Container(
height: 55,
width: 55,
child: CircleAvatar(
backgroundColor: Colors.white,
child: Icon(
Icons.arrow_forward_ios,
color: Colors.black,
),
),
),
onTap: onTap, // i want to work this function but it doesn't
),
)
: Container(),
kacinciEkran == 3
? Padding(
padding: EdgeInsets.fromLTRB(
(MediaQuery.of(context).size.width / 2) - 145, 0, 0, 0),
child: Container(
height: MediaQuery.of(context).size.height / 12,
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(49),
),
child: baslaButonuText(context),
),
)
: Container(),
],
),
);
}
看起来你的帖子主要是代码,请补充一些细节。
你需要使用 Navigator.push
发送函数到另一个页面。用这个链接试试。在flutter中把onTap函数传给另一个widget。
另外,我建议你在使用组件时,指定你要发送的参数。
altKisim( contest:context, kacinciEkran: 2, onTap: (){
setState(() {
debugPrint("ran");
distance =0;
});
让我如果帮助你。