如何使用Align或Positioned in Stack,考虑到语言的方向

far*_*ama 5 flutter flutter-layout

就我而言,我有一个包含 图标卡片的堆栈

我希望该图标在LTR情况下显示在右角,在RTL情况下显示在左角

我有以下代码:

Stack(
      children: <Widget>[
        Card(
          color: Colors.white,
          elevation: 4,
          margin: EdgeInsets.only(top: 8, right: 8, left: 8),
          child: Container(
            height: 100,
            width: double.infinity,
            child: Padding(
              padding: const EdgeInsets.all(8.0),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Text('text 1'),
                  Text('text 2'),
                  Text('text 3'),
                ],
              ),
            ),
          ),
        ),
        Positioned(
          top: 10,
          left: 10,
          child: Icon(
            Icons.ac_unit,
            size: 50,
          ),
        )
      ],
    );
Run Code Online (Sandbox Code Playgroud)

RTL模式下的结果是: 在此输入图像描述

LTR模式下的结果是: 在此输入图像描述

我怎样才能解决这个问题

M A*_*tib 12

尝试这个

  Positioned.directional(textDirection:Directionality.of(context) ,
    top: 10,
    end:  10,
    child: Icon(
      Icons.ac_unit,
      size: 50,
    ),
  )
Run Code Online (Sandbox Code Playgroud)

  • 感谢“方向性(上下文)” (3认同)