颤动从右到左rtl包裹的多行文字隐藏第一个字母

时间:2018-05-15 20:17:14

标签: dart flutter right-to-left text-alignment flutter-layout

没有什么可以让多行文字用右对齐

包裹起来
  @override   
  Widget build(BuildContext context) {
    var tt = "ومن رأى: أن إبرته التي يخيط بها انكسرت أو انتزعت منه، فإن شأنه يتفرق ويفسد أمره، وتدل الإبرة أيضاً على المرأة لإدخال الخيط فيها، وكذلك المسلة، فمن رأى أن بيده مسلة وكانت إمرأته حبلى ولدت له إبنة، وإن لم يكن هناك حمل دل ذلك على سفره.";

    return new Scaffold(
      appBar: new AppBar(
        title: new Text(gettitle()) ,
      ),

        body:
        new Directionality(textDirection: TextDirection.rtl, child:
        new Padding(
        padding: const EdgeInsets.all(16.0),
        child:
          new SingleChildScrollView(
              child:
                new Text(
                  tt,
                  textAlign: TextAlign.right,
                  textDirection: TextDirection.rtl,
                )
            ,)
        ),
        )

    );    
  }
Doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v0.3.2, on Mac OS X 10.13.4 17E202, locale en-JO)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.2)
[✓] iOS toolchain - develop for iOS devices (Xcode 9.3)
[✓] Android Studio (version 3.0)
[✓] Connected devices (1 available)

• No issues found!
Process finished with exit code 0

1 个答案:

答案 0 :(得分:2)

我很确定这是一个错误。正如你所说,它似乎只发生在多行文本中。用这个最小的例子:

  @override
  Widget build(BuildContext context) {
    return new Directionality(
      textDirection: TextDirection.rtl,
      child: new Scaffold(
        appBar: new AppBar(
          title: new Text(ttrtl2),
        ),
        body: new Padding(
          padding: const EdgeInsets.only(right: 10.0),
          child: new Text(
            ttrtl,
            style: new TextStyle(fontSize: 24.0),
          ),
        ),
      ),
    );
  }

起始字符不会丢失,只是因为我在右侧添加了填充。它似乎不是SingleChildScrollView的问题,因为我可以使用上面的代码重现它。 (顺便说一下,SingleChildScrollView可以使用填充,因此同样的工作可以工作。)

如果切换Debug Paint,您可以看到前导字符与填充重叠,这就是为什么,当没有填充时,前导字符会被截断。

您可以切换到dev频道,然后重试。或者添加一些右边填充像素。或检查现有问题(我自己没有看到一个)并输入问题。

Debug Paint屏幕截图显示文本渗入填充... Debug Paint Screenshot