您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

颤动换行而不是溢出文本

颤动换行而不是溢出文本

Row并且Column是Flex小部件,并且不会滚动,如果没有足够的空间,则抖动会引发溢出错误

如果发生这种情况,可以使用Expanded或Flexible小部件来包装长文本。

在文档中并没有明确说明,而是扩展以填充主轴上的可用空间,Expanded并Flexible沿横轴方向包装。

循序渐进的方法可能有助于理解问题。

首先,请考虑以下情形:

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Text overflow',
      home: Scaffold(
        appBar: AppBar(
          title: Text("MyApp"),
        ),
        body: Column(
          children: List.generate(100, (idx) => Text("Short text"))
        ),
      ),
    );
  }
}

这是一个列窗口小部件,它在垂直方向上溢出,由Flutter 清楚地报告:

I/Flutter ( 8390): The following message was thrown during layout:
I/Flutter ( 8390): A RenderFlex overflowed by 997 pixels on the bottom.
I/Flutter ( 8390): 
I/Flutter ( 8390): The overflowing RenderFlex has an orientation of Axis.vertical.

现在,在列中一行:

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Text overflow',
      home: Scaffold(
        appBar: AppBar(title: Text("MyApp"),),
        body: Column(
          children: <Widget>[
            Row(
              children: <Widget>[
                Text(String.fromCharCodes(List.generate(100, (i) => 65)))
              ],
            ),
          ],
        ),
      ),
    );
  }
}

现在,溢出问题出现在右侧。

我已经在列中插入了一行,只是为了类似于您的情况,但是 如果您使用简单的Row小部件Row,Column则会出现完全相同的问题:并且 这两个Flex小部件都是:

考虑这种布局,一行两行,stiched togheter

Column(
  children: <Widget>[
    Row(
      children: <Widget>[Text('AAAA'), Text('ZZZZ')],
    ),
  ],
),

现在,第一个项目 Expanded 将填满所有可用空间:

Column(
  children: <Widget>[
    Row(
      children: <Widget>[
        Expanded(child: Text('AAAA')),
        Text('ZZZZ')],
    ),
  ],
),

最后,当您展开一个很长的字符串时,您会注意到文本在横轴方向上环绕:

Column(
  children: <Widget>[
    Row(
      children: <Widget>[
        Expanded(child: Text(String.fromCharCodes(List.generate(100, (i) => 65)))),
        Text('ZZZZ')],
    ),
  ],
),
其他 2022/1/1 18:18:11 有457人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶