我试图显示标题,但正如你所看到的,它没有做正确的。
我尝试将softWrap设置为true,但它仍然相同。
代码来自flutter contacts_demo图库
flexibleSpace: FlexibleSpaceBar(
title: const Text('Fantastic Beasts And Where To Find Them'),
background: Stack(
fit: StackFit.expand,
children: <Widget>[
Image.asset(
'people/ali_landscape.png',
package: 'flutter_gallery_assets',
fit: BoxFit.cover,
height: _appBarHeight,
),
// This gradient ensures that the toolbar icons are distinct
// against the background image.
const DecoratedBox(
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment(0.0, -1.0),
end: Alignment(0.0, -0.4),
colors: <Color>[Color(0x60000000), Color(0x00000000)],
),
),
),
],
),
),
4条答案
按热度按时间eagi6jfj1#
您可以将
ConstrainedBox
与MediaQuery.of(context).size.width
沿着使用沿着
vaj7vani2#
我深入研究了
FlexibleSpaceBar
源代码,至少现在我明白发生了什么。原来在展开状态下,title
被放大到1.5
的大小,所以它自然会溢出屏幕。当用户向上滚动时,title
被缩小到1.0
的源代码大小。在这个大小下,它将位于顶部工具栏中。也许这些信息将帮助一些人根据他们的变通办法,直到这是固定的。
我想知道为什么我用
maxWidth: MediaQuery.of(context).size.width
PackageConstraintedBox
中的title的方法不起作用。现在我知道了:我必须用maxWidth
除这个数。另请参见Flutter github问题跟踪器上的this bug。
bvjxkvbb3#
由于显而易见的原因,标题长度与您设置的字体大小无法在较小的设备上显示在一行中。
您可能希望使用
MediaQuery.of(context).size.width
来获取设备宽度,并相应地将标题文本fontSize设置为该宽度的一部分。在模拟器中尝试,看看哪一种最适合您的文本长度。或者根据宽度间隔硬编码一些字体大小:
7fyelxc54#
多亏了dimsuz的回答,才有可能消除
FlexibleSpaceBar
中文本的放大:20.0
中的20.0
是我从here中获取的。