当前位置: 首页 > 知识库问答 >
问题:

定位颤振的ParentDataWidget使用错误

裴承安
2023-03-14

我的代码是

 Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: Helper.of(context).onWillPop,
      child: Scaffold(
        key: _con.scaffoldKey,
        resizeToAvoidBottomInset: true,
        body: SingleChildScrollView(
          child: Column(
              children: <Widget>[
                SizedBox(height: 60),
                Center(
                  child: Image.asset(
                    'assets/img/villa_logo-transparent.png',
                    width: 230.0,
                    height: 230.0,
                  ),
                ),
                Stack(
                  children: [
createTextForm()
],
                ),
              ]),
        ),
      ),
    );
  }

这是我创建文本表单的方式

Widget createTextForm() {
    return  Positioned(
      // top: config.App(context).appHeight(29.5) - 50,
      child: Container(
        // decoration: BoxDecoration(
        //     color: Theme.of(context).primaryColor,
        //     borderRadius: BorderRadius.all(Radius.circular(10)),
        //     boxShadow: [
        //       BoxShadow(
        //         blurRadius: 50,
        //         color: Theme.of(context).hintColor.withOpacity(0.2),
        //       )
        //     ]),
        margin: EdgeInsets.symmetric(
          horizontal: 20,
        ),
        padding: EdgeInsets.symmetric(vertical: 2, horizontal: 27),
        width: config.App(context).appWidth(88),
        // height: config.App(context).appHeight(70),

        // height: config.App(context).appHeight(80),
        child: Form(
          key: _con.loginFormKey,
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              TextFormField(
                keyboardType: TextInputType.text,
                onSaved: (input) => _con.user.name = input,
                validator: (input) => input.length < 3
                    ? S.of(context).should_be_more_than_3_letters
                    : null,
                decoration: InputDecoration(
                  labelText: S.of(context).full_name,
                  labelStyle: TextStyle(color: Theme.of(context).accentColor),
                  contentPadding: EdgeInsets.all(12),
                  hintText: S.of(context).john_doe,
                  hintStyle: TextStyle(
                      color: Theme.of(context).focusColor.withOpacity(0.7)),
                  prefixIcon: Icon(Icons.person_outline,
                      color: Theme.of(context).accentColor),
                  border: OutlineInputBorder(
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.2))),
                  focusedBorder: OutlineInputBorder(
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.5))),
                  enabledBorder: OutlineInputBorder(
                      borderRadius: BorderRadius.all(Radius.circular(20)),
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.2))),
                ),
              ),
              SizedBox(height: 30),
              TextFormField(
                keyboardType: TextInputType.phone,
                onSaved: (input) => _con.user.phone = input,
                validator: (input) => input.length < 3
                    ? S.of(context).should_be_more_than_3_letters
                    : null,
                decoration: InputDecoration(
                  labelText: "Phone Number",
                  labelStyle: TextStyle(color: Theme.of(context).accentColor),
                  contentPadding: EdgeInsets.all(12),
                  hintText: "+1 234 56789",
                  hintStyle: TextStyle(
                      color: Theme.of(context).focusColor.withOpacity(0.7)),
                  prefixIcon: Icon(Icons.person_outline,
                      color: Theme.of(context).accentColor),
                  border: OutlineInputBorder(
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.2))),
                  focusedBorder: OutlineInputBorder(
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.5))),
                  enabledBorder: OutlineInputBorder(
                      borderRadius: BorderRadius.all(Radius.circular(20)),
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.2))),
                ),
              ),
              SizedBox(height: 30),
              TextFormField(
                keyboardType: TextInputType.emailAddress,
                onSaved: (input) => _con.user.email = input,
                validator: (input) => !input.contains('@')
                    ? S.of(context).should_be_a_valid_email
                    : null,
                decoration: InputDecoration(
                  labelText: S.of(context).email,
                  labelStyle: TextStyle(color: Theme.of(context).accentColor),
                  contentPadding: EdgeInsets.all(12),
                  hintText: '',
                  hintStyle: TextStyle(
                      color: Theme.of(context).focusColor.withOpacity(0.7)),
                  prefixIcon: Icon(Icons.alternate_email,
                      color: Theme.of(context).accentColor),
                  border: OutlineInputBorder(
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.2))),
                  focusedBorder: OutlineInputBorder(
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.5))),
                  enabledBorder: OutlineInputBorder(
                      borderRadius: BorderRadius.all(Radius.circular(20)),
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.2))),
                ),
              ),
              SizedBox(height: 30),
              TextFormField(
                obscureText: _con.hidePassword,
                onSaved: (input) => _con.user.password = input,
                validator: (input) => input.length < 6
                    ? S.of(context).should_be_more_than_6_letters
                    : null,
                decoration: InputDecoration(
                  labelText: S.of(context).password,
                  labelStyle: TextStyle(color: Theme.of(context).accentColor),
                  contentPadding: EdgeInsets.all(12),
                  hintText: '••••••••••••',
                  hintStyle: TextStyle(
                      color: Theme.of(context).focusColor.withOpacity(0.7)),
                  prefixIcon: Icon(Icons.lock_outline,
                      color: Theme.of(context).accentColor),
                  suffixIcon: IconButton(
                    onPressed: () {
                      setState(() {
                        _con.hidePassword = !_con.hidePassword;
                      });
                    },
                    color: Theme.of(context).focusColor,
                    icon: Icon(_con.hidePassword
                        ? Icons.visibility
                        : Icons.visibility_off),
                  ),
                  border: OutlineInputBorder(
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.2))),
                  focusedBorder: OutlineInputBorder(
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.5))),
                  enabledBorder: OutlineInputBorder(
                      borderRadius: BorderRadius.all(Radius.circular(20)),
                      borderSide: BorderSide(
                          color:
                              Theme.of(context).focusColor.withOpacity(0.2))),
                ),
              ),
              SizedBox(height: 30),
              registerButtonCall(),
              bottomLoginText(),
              
            ],
          ),
        ),
      ),
    );
    //
    // ]);
  }

共有1个答案

长孙承嗣
2023-03-14

您的定位小部件必须直接位于堆栈内,而不是位于返回定位的另一个小部件内。

Stack(
  children: [
    Positioned(
      child: TextForm()
    )
  ],
),

这只是Flutter进行错误检查以确保Posi的仅在Stack中使用的方式。

与< code >如何扩展相同

 类似资料:
  • 我只是导入了包background\u位置,没有使用它。即使我犯了这个错误 尝试更改kotlin版本,更改了MinSDK版本,但没有更改。

  • Xcode的输出:在文件中包含从 /Users/dani/development/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.3/ios/Classes/FLTURLLauncherPlugin.m: 7: /Users/dani/development/flutter/.pub-cache/hosted/pub.dart

  • 在flutter_application中运行“flutter pub get”... 因为google_map_location_picker>=3.3.1<4.1.3依赖于intl>=0.16.0<=0.16.1,而且来自sdk的每个版本的flutter_localizations都依赖于intl 0.17.0,所以google_map_location_picker>=3.3.1<4.1.3

  • 我可以使用“startAfter”和“limit”进行分页,但它有错误。 例如,在Firestore DB中,我有7条记录: 当页面大小为5时,第一页就可以了,因为我使用了: 它给了我1-5项。 当它加载第二页时,我使用了: 问题是第二页结果只有item7,item6消失了。“开始”也有同样的问题。 真希望它有“抵消”功能,有人有解决办法吗?

  • 我将location包添加到project的pubspec.yamel中,当我构建我的项目时,我得到以下错误: 失败:生成失败,出现异常。 失败:生成失败,出现异常。 错误:任务“:compilereleaseJavaWithJavac”执行失败。编译失败;有关详细信息,请参阅编译器错误输出。 try:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获

  • 在使用解决版本问题时,我得到以下错误: 因为google_map_location_picker 3.3.3依赖于intl>=0.16.0<=0.16.1,而sdk中的每个flutter_localizations版本都依赖于intl 0.17.0,所以google_map_location_picker 3.3.3与sdk中的flutter_localizations不兼容。因此,由于food_