如何在首页和其他页面之间传递动画和墨迹的flutter?

问题描述 投票:-1回答:1

我试图在有动画的页面之间传递(实际上我使用其他页面的左填充)和墨迹小部件,但我不能将其他页面的参数按钮发送到主页.这里是我的主页代码。


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

看起来你的帖子主要是代码,请补充一些细节。

flutter error-handling widget flutter-animation function-module
1个回答
0
投票

你需要使用 Navigator.push 发送函数到另一个页面。用这个链接试试。在flutter中把onTap函数传给另一个widget。

另外,我建议你在使用组件时,指定你要发送的参数。

altKisim( contest:context, kacinciEkran: 2, onTap: (){
      setState(() {
        debugPrint("ran");
        distance =0;

      });

让我如果帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.