flutter - 将 Wrap 小部件与文本一起使用

标签 flutter flutter-layout word-wrap

我正在尝试复制这个设计。

enter image description here

SizedBox(
  width: 330.w,
  child: Wrap(
    children: [
      Transform.scale(
        scale: 1.3,
        child: Checkbox(
          value: false,
          side: const BorderSide(width: 1),
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(3.r),
          ),
          onChanged: (bool? value) {},
        ),
      ),
      const Text('Nullam quis risus eget urna mollis ...'),
    ],
  ),
)

由于我希望文本自动换行并向下流动,因此我使用了 Wrap 小部件。但是 Text 小部件并不从与复选框相同的级别开始。看起来像这样。

enter image description here

是否有其他方法可以实现这一目标?

最佳答案

您可以尝试RichTextWidgetSpanTextSpan

有一个代码示例:

import 'package:flutter/material.dart';

const Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(
        scaffoldBackgroundColor: darkBlue,
      ),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
        child: Container(
            color: Colors.white,
            child: RichText(
              text: TextSpan(
                children: [
                  WidgetSpan(
                    child: SizedBox(
                        height: 20,
                        width: 20,
                        child: Checkbox(
                          value: false,
                          side: const BorderSide(width: 1),
                          onChanged: (bool? value) {},
                        )),
                  ),
                  const TextSpan(
                    text:
                        " Nullam quis risus get urna mollis ornare vel eu leo. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Done ullamcorper nulla non metus auctor fringilla.",
                  ),
                ],
              ),
            )));
  }
}

就像 enter image description here

关于flutter - 将 Wrap 小部件与文本一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70575136/

相关文章:

flutter - 动画列表只删除最后一个项目而不是给定索引处的项目

flutter - 如何制作适合 Flutter 剩余空间的 4 网格

html - 预标记在浏览器中不同

class - 同一个 Statefulwidget 的多个实例似乎共享同一个 State 对象?

Flutter:非事件InputConnection上的getTextBeforeCursor

dart - 如何在 Dart 中使用德语变音符号对字符串列表进行排序?

drop-down-menu - 自定义 DropdownButton 的弹出菜单

css - 使用 css 应用文本换行

html - Ionic 2 文本不在选择组件中换行

Dart/Flutter - Flutter - 为什么 ListView 会无限大