如何在 Flutter 中获取当前布局方向?
how to get current layout direction in Flutter?
我正在开发一个应该也适用于 RTL 布局方向(阿拉伯语和希伯来语)的应用程序。
如果布局方向是
RTL.
如何确定应用程序当前的布局方向?
您可以使用Directionality.of
获取当前方向。
final TextDirection currentDirection = Directionality.of(context);
final bool isRTL = currentDirection == TextDirection.rtl;
谁确定 TextDireaction
是一种语言,但如果需要你可以强制,可能这对你有用。
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(),
home: Directionality(
textDirection: TextDirection.rtl,
child: Home(),
),
);
}
- 将此方法添加到您的 class :
bool isRTL() => Directionality.of(context).toString().contains(TextDirection.RTL.value.toLowerCase());
- build()方法中的用法:
RichText(
textAlign: isRTL() ? TextAlign.right : TextAlign.left,
.....
),
我正在开发一个应该也适用于 RTL 布局方向(阿拉伯语和希伯来语)的应用程序。
如果布局方向是 RTL.
如何确定应用程序当前的布局方向?
您可以使用Directionality.of
获取当前方向。
final TextDirection currentDirection = Directionality.of(context);
final bool isRTL = currentDirection == TextDirection.rtl;
谁确定 TextDireaction
是一种语言,但如果需要你可以强制,可能这对你有用。
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(),
home: Directionality(
textDirection: TextDirection.rtl,
child: Home(),
),
);
}
- 将此方法添加到您的 class :
bool isRTL() => Directionality.of(context).toString().contains(TextDirection.RTL.value.toLowerCase());
- build()方法中的用法:
RichText(
textAlign: isRTL() ? TextAlign.right : TextAlign.left,
.....
),