我正在try 制作一个TextFormField,以便在currency_text_input_formatter包裹中输入钱.我把它放在showModalBottomSheet.

这就是我打开showModalBottomSheet的时候发生的事情:

enter image description here

使用键盘进行更改时:

enter image description here

正如你所看到的,这一次TRY元货币的图标已经到来.当我打开showModalBottomSheet时,我希望TRY货币图标出现.我需要在键盘上做一个更改,以便显示实际货币TRY.当showModalBottomSheet打开时,我希望它正确显示(TRY)图标.

我怎样才能解决这个问题?

textFormField码:

TextFormField(
  style: TextStyle(fontSize: 19),
  decoration: InputDecoration(
    border: OutlineInputBorder(),
  ),
  initialValue: _fiyat.format(snapshot.data!.docs[index].data()["urunFiyati"]),
  inputFormatters: <TextInputFormatter>[
    CurrencyTextInputFormatter(
      locale: 'tr_TR',
      decimalDigits: 2,
      symbol: '₺',
    ),
  ],
  keyboardType: TextInputType.number,
),

提前感谢您的帮助:)

推荐答案

try 在生成之前初始化CurrencyTextInputFormatter(构建上下文).UPD:代码已更新,因此也使用showModalBottomSheet

import 'package:flutter/material.dart';
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return  MaterialApp(home: HomePage());
  }
}

class HomePage extends StatelessWidget {
   HomePage({Key? key}) : super(key: key);
  final CurrencyTextInputFormatter _formatter = CurrencyTextInputFormatter(
    locale: 'tr_TR',
    decimalDigits: 2,
    symbol: '₺',
  );

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(
        child: ElevatedButton(
          child: const Text('showModalBottomSheet'),
          onPressed: () {
            showModalBottomSheet<void>(
              context: context,
              builder: (BuildContext context) {
                return Container(
                  height: 200,
                  color: Colors.grey[100],
                  child: Center(
                    child: Column(
                      mainAxisAlignment: MainAxisAlignment.center,
                      mainAxisSize: MainAxisSize.min,
                      children: <Widget>[
                        Padding(
                          padding: const EdgeInsets.symmetric(horizontal: 30,vertical: 10),
                          child: TextFormField(
                            initialValue: _formatter.format('2000'),
                            inputFormatters: <TextInputFormatter>[_formatter],
                            keyboardType: TextInputType.number,
                          ),
                        ),
                        const Text('Modal BottomSheet'),
                        ElevatedButton(
                          child: const Text('Close BottomSheet'),
                          onPressed: () => Navigator.pop(context),
                        )
                      ],
                    ),
                  ),
                );
              },
            );
          },
        ),
      )
    );
  }
}

Flutter相关问答推荐

Flutter 未处理的异常:类型“Future”不是“Group”类型的子类型

如何在Flutter 中创建拆分容器?正确的方法应该是什么? CustomPainter 还是 Chip?

对目录中的每个项目运行“flutter clean”命令

参数类型“MaterialApp Function()”不能分配给参数类型“Widget Function(BuildContext)”

激活复选框时保持下拉菜单打开

如何让 Flutter FormBuilderDateTimePicker 仅显示日期选择器

如何在Flutter 中创建类似信用卡号的TextField?

将类型与 Flutter Hooks 一起使用

Flutter 有没有办法制作一个动态时间戳,打印出 10 分钟前、1 小时前或 2 个月前的内容

Flutter:动画过渡期间的 Matrix4 偏离中心旋转

Xcode Archive 因Flutter 插件而失败

将小部件放置在边界矩形之外

为什么在 Cupertino App 中更改导航栏的背景 colored颜色 会改变高度?

如何将调用委托给 json_serialization 中的方法?

ListView 不会将对象与文档分开

为什么riverpod甚至无法在项目中初始化?找不到方法:'Error.throwWithStackTrace'

为什么设备管理器打不开?

Android 模拟器在截屏时一直退出

漏洞!源单元“_BuildScript_”中的“语义分析”阶段异常 Apple Arm 上不支持的类文件主要版本 61

在 M1 Apple Silicon 上更新 Android Studio Fox(2020.3.1)后,找不到与Flutter文档Bundle 的 Java 版本