如何在 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(),
    ),
  );
}
  1. 将此方法添加到您的 class :

bool isRTL() => Directionality.of(context).toString().contains(TextDirection.RTL.value.toLowerCase());

  1. build()方法中的用法:

RichText(
   textAlign: isRTL() ? TextAlign.right : TextAlign.left,
   .....
),