Mao*_*ion 1 localization arabic dart flutter flutter-layout
我正在使用带有内置 redux 支持的样板 flutter 应用程序模板,以及使用flutter_localizations和intl包的希伯来语 RTL 方向。
整个应用程序以及我创建的每个新小部件都正确地具有本机 RTL 方向性。
我有一个文本输入字段来获取用户电话号码。我希望这个输入字段及其所有样式和内部功能都以 LTR 方式运行。对于我可能有的其他输入字段也是如此,例如电子邮件(始终为英文)。
似乎由 app intl配置确定的整体方向性与我试图“强制”文本字段以专门交换其行为的新方向性小部件之间存在冲突:
child: SizedBox(
width: 250,
child: Directionality(
textDirection: TextDirection.LTR,
child: TextField(
controller: phoneController,
keyboardType: TextInputType.phone,
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
),
),
),
Run Code Online (Sandbox Code Playgroud)
运行此代码会导致以下错误:
lib/modules/login/login_page.dart:54:54: Error: The argument type 'TextDirection/*1*/' can't be assigned to the parameter type 'TextDirection/*2*/'.
- 'TextDirection/*1*/' is from 'package:intl/src/intl/text_direction.dart' ('../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/intl-0.17.0-nullsafety.2/lib/src/intl/text_direction.dart').
- 'TextDirection/*2*/' is from 'dart:ui'.
textDirection: TextDirection.LTR,
^
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?我怎样才能完成所需的行为?
问题出在我身上。我指望 IDE 自动完成导入,结果发现intl包和常规flutter:material包都公开了Directionality选项:
textDirection尝试覆盖整体配置,但失败:child: Directionality(
textDirection: TextDirection.LTR,
Run Code Online (Sandbox Code Playgroud)
package:flutter/material.dart选项可以按预期工作:child: Directionality(
textDirection: TextDirection.ltr, // notice lower case
Run Code Online (Sandbox Code Playgroud)
小智 6
尝试这个:
import 'dart:ui' as UI;
UI.TextDirection direction = UI.TextDirection.ltr;
Directionality(
textDirection: direction,
child: widget());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4581 次 |
| 最近记录: |