【问题标题】:how to have a widget inside a text?如何在文本中有一个小部件?
【发布时间】:2019-09-15 05:33:57
【问题描述】:

我正在创建一个小部件,并希望在 Flutter 中的一串文本之间有一个下拉菜单。如何实现类似于 Flutter 中图像显示的内容?

【问题讨论】:

  • 我认为你不能。 closet 选项使用 flex 属性将一个小部件放置在两个文本小部件之间。我在带有 web 视图的原生 android 中做了类似的事情,我认为 web view 是最好的方法。
  • 谢谢,你能分享你的android代码来浏览网页吗??

标签: dart flutter flutter-layout


【解决方案1】:

我们可以用文本中的每个空格来分割文本字符串。并且每个拆分的文本部分都是一个单独的小部件。所以我们可以在另一个小部件之间放置一个下拉小部件。例如:

在有问题的示例中,我们应该有 13 个小部件,其中 12 个是 Text 小部件,其中一个是下拉小部件。然后我们可以将所有这些小部件放在 wrap 小部件中以显示类似这张图片的东西。

【讨论】:

    【解决方案2】:

    我认为这就是您所需要的。您可以创建自定义小部件,这样您就不必总是编写代码。

    class _MyHomePageState extends State<MyHomePage> {
    
      String selectedItem = 'withdraw';
      Widget build(BuildContext context) {
        return new Scaffold(
          body: Center(
              child: Wrap(
                alignment: WrapAlignment.center,
                crossAxisAlignment: WrapCrossAlignment.center,
                children: <Widget>[
                  Text('Enemy troops chose to '),
                  DropdownButton<String>(
                    value: selectedItem,
                    items: [
                      DropdownMenuItem<String>(
                        value: 'withdraw',
                        child: Text('withdraw'),
                      ),
                      DropdownMenuItem<String>(
                        value: 'adverse',
                        child: Text('adverse'),
                      ),
                      DropdownMenuItem<String>(
                        value: 'celebrate',
                        child: Text('celebrate'),
                      ),
                    ],
                    onChanged: (item) {
                      selectedItem = item;
                      setState(() {});
                    },
                  ),
                  Text(' to their camps, planning a new attack strategy.'),
                ],
              ),
            ),
        );
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-03-08
      • 1970-01-01
      • 1970-01-01
      • 2022-06-23
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      • 2019-06-11
      相关资源
      最近更新 更多