【问题标题】:Can bottom static when keyboard appear?键盘出现时底部静电可以吗?
【发布时间】:2021-07-31 01:27:46
【问题描述】:

当我在 Scaffold 中设置 resizeToAvoidBottomInset: false, 时,它似乎不起作用。 enter image description here

【问题讨论】:

    标签: flutter layout keyboard containers textfield


    【解决方案1】:

    尝试用SingleChildScrollView()包装它

    即,

    SingleChildScrollView(
                      child: //your code
                         ),
    

    更多关于SingleChildScrollView()here

    【讨论】:

    • 我试试看。但我想在键盘出现时布局静态。
    【解决方案2】:

    TextField 包裹在Padding 中并将填充设置为EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom)

    Padding(
        padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
        child: TextField(...
    

    【讨论】:

      【解决方案3】:

      我在登录屏幕中遇到了同样的错误。 然后我使用 Listview 进行小部件设计

      return Container(
            padding: const EdgeInsets.symmetric(horizontal: 57),
            child: Center(
                child: Form(
              key: model.formKey,
              child: ListView(
                primary: false,
                shrinkWrap: true,
                children: [
                  Image(
                    image: ImageHelper.logo,
                    height: 241,
                    width: 200,
                  ),
                  SizedBox(
                    height: 30,
                  ),
                  Input(
                    hintText: AppLocalizations.of(context).email,
                    controller: model.loginController,
                    validator: (value) => model.loginValidator(context, value),
                    autofillHints: [AutofillHints.email],
                    focusNode: model.loginNode,
                    onFieldSubmitted: (v) {
                      model.passwordNode.requestFocus();
                    },
                    textInputType: TextInputType.emailAddress,
                    textInputAction: TextInputAction.next,
                  ),
                  Input(
                    hintText: AppLocalizations.of(context).password,
                    controller: model.passwordController,
                    obscureText: true,
                    validator: (value) => model.passwordValidator(context, value),
                    autofillHints: [AutofillHints.password],
                    focusNode: model.passwordNode,
                    onFieldSubmitted: (v) {
                      model.handleLogin(context);
                    },
                    textInputAction: TextInputAction.send,
                  ),
                  TextButton(
                    onPressed: () {
                      NavigationService.of(context).navigateToRecover(context);
                    },
                    child: Text(
                      AppLocalizations.of(context).passwordForgotten,
                    ),
                  ),
                  SizedBox(
                    height: 12,
                  ),
                  Row(
                    mainAxisSize: MainAxisSize.min,
                    mainAxisAlignment: MainAxisAlignment.start,
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      CheckBoxTimeline(
                          isSelected: model.isTermsAccepted,
                          color: model.isTermsAccepted
                              ? AppColors.primaryColor
                              : Colors.white,
                          borderColor: model.isTermsAccepted
                              ? AppColors.primaryColor
                              : AppColors.duskColor,
                          onChanged: (value) {
                            model.isTermsAccepted = value;
                            model.notifyListeners();
                          }),
                      SizedBox(
                        width: 8,
                      ),
                      Expanded(
                        child: Padding(
                          padding: const EdgeInsets.only(top: 4.0),
                          child: Text.rich(
                            TextSpan(
                                text: '${AppLocalizations.of(context).acceptFor} ',
                                style: AppStyles.textStyle(context,
                                    fontSize: 14,
                                    fontWeight: FontWeight.w600,
                                    height: 1.5),
                                children: [
                                  TextSpan(
                                      text: AppLocalizations.of(context)
                                          .termsAndCondition,
                                      style: AppStyles.italicStyle(context,
                                          fontSize: 14,
                                          fontWeight: FontWeight.w700,
                                          height: 1.5),
                                      recognizer: TapGestureRecognizer()
                                        ..onTap = () {
                                          UiHelper.launchUrl(
                                              context, appConfig.parameters.cguUrl);
                                        }),
                                ]),
                          ),
                        ),
                      ),
                    ],
                  ),
                  SizedBox(
                    height: 24,
                  ),
                  PrimaryButton(
                    onPressed: () {
                      model.handleLogin(context);
                    },
                    label: AppLocalizations.of(context).validate,
                  ),
                ],
              ),
            )),
          );
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-06
        相关资源
        最近更新 更多