用右对齐将多行文本换行没有任何工作
@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
最佳答案
我很确定这是一个错误。如您所说,它似乎仅在多行文本中发生。举这个最小的例子:
@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
channel ,然后重试。或添加一些正确填充的像素。或检查是否存在现有问题(我自己没有看到),然后输入问题。Debug Paint屏幕截图显示了文本渗入填充中的情况...
关于dart - Flutter从右到左的rtl包装的多行文字隐藏第一个字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50358547/