flutter - 不正确使用ParentDataWidget-如何解决此错误?

标签 flutter dart syntax-error

1/我对此代码有疑问,但是三天后我仍然不明白为什么。
请参阅图片以更好地了解该软件给我的错误(不正确使用ParentDataWidget错误)。
Error code in Android Studio program
2/然后我还有关于初始化的另一个问题:将变量visualizedText转换为void Initstate时,无法使用getTranslated函数进行转换(它不接受上下文)。出于什么原因?

class WarmUpPage extends StatefulWidget {
  WarmUpPage({Key key}) : super(key: key);
  @override
  _WarmUpPageState createState() => _WarmUpPageState();
}

class _WarmUpPageState extends State<WarmUpPage> {
  int counter = 8;
  dynamic visualizedText; //text to be visualized above button
  Image imgButton;
  Image imgButtonUp = Image.asset("lib/images/unpressed.png");
  Image imgButtonDown = Image.asset("lib/images/pressed.png");

  //Inizialize the state of the picture into imgButtonUp
  void initState() {
    super.initState();
    imgButton = imgButtonUp;
    visualizedText ='Warm Up'; //initial text but I cannot translate it because context gives error
  }

  //Function to increment the counter
  void _decrementCounter() {
    setState(() {
      counter--;
      if (counter == 0) {
        randompagegenerator(context);
      } else if (counter == 99) {
        visualizedText = getTranslated(context, 'warmup1');
      } else if (counter == 70) {
        visualizedText = getTranslated(context, 'warmup2');
      } else if (counter == 40) {
        visualizedText = getTranslated(context, 'warmup3');
      } else if (counter == 20) {
        visualizedText = getTranslated(context, 'warmup4');
      } else if (counter == 10) {
        visualizedText = getTranslated(context, 'warmup5');
      } else if (counter == 5) {
        visualizedText = getTranslated(context, 'warmup6');
      } else if (counter == 1) {
        visualizedText = getTranslated(context, 'warmup7');
      } else {}
    });
  }

  @override
  Widget build(BuildContext context) {
    TextStyle _textStyleText = TextStyle(
      color: Colors.white,
      fontSize: 40,
    );
    TextStyle _textStyleNumber = TextStyle(
      color: Colors.white,
      fontSize: 70,
    );
    return Scaffold(
      //backgroundColor: Colors.white,
       appBar: ReusableBar(),
      body: SafeArea(
        child: Stack(
          alignment: Alignment.topCenter,
          children: [
            Container(
              width: MediaQuery.of(context).size.width / 1,
              height: MediaQuery.of(context).size.height / 1,
              padding: EdgeInsets.all(100),
              alignment: Alignment.center,
              //color: Colors.grey[850],
              //color: Theme.of(context).colorScheme.background,
              child: Center(
                child: Positioned(
                  width: MediaQuery.of(context).size.width / 1,
                  child: GestureDetector(
                    child: imgButton,
                    onTap:() {
                      _decrementCounter();
                      incrementAppBarCounter();
                  },
                    onTapDown: (tap) {
                      setState(() {
                        imgButton = imgButtonDown;
                      });
                    },
                    onTapUp: (tap) {
                      setState(() {
                        imgButton = imgButtonUp;
                      });
                    },
                  ),
                ),
              ),
            ),
            Positioned(
              top: 0,
              width: MediaQuery.of(context).size.width * 0.7,
              height: MediaQuery.of(context).size.height * 0.28,
              child: Container(
                //width: MediaQuery.of(context).size.width / 1,
                //height: MediaQuery.of(context).size.height * 0.25,
                padding: EdgeInsets.all(8),
                alignment: Alignment.bottomCenter,
                //color:Colors.grey[500],
                child: Text(
                  visualizedText,
                  style: _textStyleText,
                  textAlign: TextAlign.center,
                ),
              ),
            ),
            Positioned(
              width: MediaQuery.of(context).size.width / 1,
              top: MediaQuery.of(context).size.height * 0.58,
              child: Container(
                width: MediaQuery.of(context).size.width / 1,
                //height: MediaQuery.of(context).size.height *0.2,
                padding: EdgeInsets.all(1),
                alignment: Alignment.topCenter,
                //color: Colors.grey[200],
                child: Text('$counter', style: _textStyleNumber),
              ),
            ),
            Positioned(
              bottom: 0,
              width: MediaQuery.of(context).size.width / 1,
              child: Container(
                height: MediaQuery.of(context).size.height / 15,
                padding: EdgeInsets.all(1),
                alignment: Alignment.center,
              ),
            ),
          ],
        ),
      ),
    );
  }
}

最佳答案

  • 对于[1],

  • Positioned小部件必须是Stack的后代,并且从Positioned小部件到其封闭的Stack的路径必须仅包含StatelessWidgetsStatefulWidgets,显然,您是用Positioned()Container()包装Center()

    关于flutter - 不正确使用ParentDataWidget-如何解决此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65637531/

    相关文章:

    flutter - 如何创建自定义启动屏幕?

    flutter - 基于用户输入的动态 TextField 宽度

    尽管我在 try catch block 中编写了 Flutter 应用程序,但它还是崩溃了

    Flutter : Android Gradle plugin requires Java 11 to run. 您当前使用的是 Java 1.8

    php - 注意:尝试获取非对象错误的属性

    vb.net - Access 查询中的语法错误(缺少运算符)

    android - Flutter-如何仅在 ListView 中显示选定的项目

    android - Flutter dart:如何分隔Text和TextField之间的空间,以及如何将RadioListTile集合在一起?

    javascript - 我的 JQuery 语法有什么问题吗?

    rest - 从json调用解析以在flutter中映射