颤振:行距影响第一行,定位小部件问题解决

时间:2020-02-22 09:43:32

标签: flutter

我需要修改行距。不幸的是,height的{​​{1}}参数会影响第一行以及您在此处看到的内容:

TextStyle

enter image description here

我立即想到一个解决方案:class Screen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.blue, appBar: AppBar(backgroundColor: Colors.blue.withOpacity(0.5)), body: Container( color: Colors.yellow, child: Container( color: Colors.red, child: Text( 'first line\nsecond line', style: TextStyle(height: 2.5, fontSize: 20), ), ), ), ); } } 带有Stack小部件,值为Positioned为负。 我们分两步进行,首先将其嵌入top中。

Stack

输出看起来像以前一样:

enter image description here

第二步:class Screen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.blue, appBar: AppBar(backgroundColor: Colors.blue.withOpacity(0.5)), body: Container( color: Colors.yellow, child: Stack( children: <Widget>[ Container( color: Colors.red, child: Text( 'first line\nsecond line', style: TextStyle(height: 2.5, fontSize: 20), ), ), ], ), ), ); } } 小部件包装它。

Positioned

enter image description here

这几乎是我想要的。但是,如果您注意颜色,则蓝色之前是黄色。添加class Screen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.blue, appBar: AppBar(backgroundColor: Colors.blue.withOpacity(0.5)), body: Container( color: Colors.yellow, child: Stack( // fit: StackFit.loose, children: <Widget>[ Positioned( // .fill top: -20, // bottom: 0, // left: 50, // right: 0, child: Container( color: Colors.red, child: Text( 'first line\nsecond line', style: TextStyle(height: 2.5, fontSize: 20), ), ), ), ], ), ), ); } } 小部件会使Positioned扩展而不适合内容-这使我无法在更复杂的布局中使用它-例如列表显示。颤振输出警告Stack

我注意到,只要添加了顶部/左侧/底部/右侧中的任何一个,Positioned窗口小部件便会执行此操作-在它适合内容之前。我尝试使用Stack的RenderStack object was given an infinite size during layout.属性进行实验,该属性的位置为fit初始化程序,但没有成功。

0 个答案:

没有答案