Flutter Справа налево RTL завернутый многострочный текст скрыть первую букву - PullRequest
0 голосов
/ 15 мая 2018

Ничто не работает, чтобы многострочный текст был обёрнут с помощью правой надписи

  @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 голосов
/ 16 мая 2018

Я почти уверен, что это ошибка. Как вы говорите, это, кажется, происходит только с многострочным текстом. С этим минимальным примером:

  @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 Screenshot

...