如何解决Flutter 文本小部件 RTL
我想用英语和阿拉伯语开发一个 flutter 应用程序。 我希望当语言环境为阿拉伯语时,默认情况下小部件从屏幕右侧开始,就像英文小部件从左侧开始一样。 没错,文本本身是从右向左流动的,但小部件本身是从屏幕左侧开始的。
请注意,虽然屏幕上的文本应该从右向左流动,但文本小部件本身是从屏幕左侧开始的,这不是 RTL。
main.dart 代码:(我将 dart:ui 用于 textDirection,因为没有它 TextDirection 不起作用)
void main() {
runApp(
EasyLocalization(
supportedLocales: [Locale('en','US'),Locale('ar','SA')],path: 'assets/translations',// <-- change patch to your
startLocale: Locale('ar','SA'),saveLocale: false,child: MyApp()),);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
print(context.locale.toString());
return MaterialApp(
localizationsDelegates: context.localizationDelegates,supportedLocales: context.supportedLocales,locale: context.locale,home: Scaffold(
body: Directionality(
textDirection: ui.TextDirection.rtl,child: SafeArea(
child: Text(
"سلام",style: TextStyle(fontSize: 40),),));
}
}
pubspec.yaml:
name: flutter_app3
description: A new Flutter application.
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
easy_localization: ^2.3.3+1
flutter_localizations:
sdk: flutter
intl: 0.17.0
cupertino_icons: ^1.0.2
dev_dependencies:
flutter_test:
sdk: flutter
uses-material-design: true
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。