Flutter-如何在另一个窗口小部件构建器中实现动态窗口小部件构建器

时间:2019-04-06 19:41:15

标签: flutter flutter-layout

tldr:颤抖的新手。需要实现一个聊天气泡,其中包含更多的聊天气泡(可单独单击)。

我有一个_buildQuestionMessage()窗口小部件生成器,它创建了一个看起来像这样的聊天气泡:

enter image description here

现在,我的目的是使构建器在此小部件内生成动态数量的containers,从而启用MCQ类型的功能。最终结果可能看起来像这样(问题气泡内有动态数量的可点击选项):

enter image description here

现在,我正面临一个问题:

如何实现这种方式,使得optionsBuilder()的调用次数与我的选择次数一样多。假设我有一个选项列表;同时确保原始气泡封装了这些选项。

我的_buildQuestionMessage()方法是这样的:

Widget _buildQuestionMessage(String questionText, List<String> optionStrings) { //optionStrings may contain anything between 2 to 10 strings that are the options.
return Padding(
  padding: EdgeInsets.symmetric(vertical: 7.5),
  child: Column(
    mainAxisSize: MainAxisSize.min,
    crossAxisAlignment: CrossAxisAlignment.start,
    children: <Widget>[
      Row(
        crossAxisAlignment: CrossAxisAlignment.end,
        children: <Widget>[
          SizedBox(width: 5),
          ClipRRect(
            borderRadius: BorderRadius.only(
                topLeft: Radius.circular(25),
                topRight: Radius.circular(25),
                bottomRight: Radius.circular(25),
                bottomLeft: Radius.circular(25)),
            child: Container(
              color: Color(0xFF2C2C36),
              padding: EdgeInsets.all(17),
              constraints: BoxConstraints(
                maxWidth: 250.0,
                minWidth: 30.0,
              ),
              child: Text(
                questionText,
                style: TextStyle(
                  color: Colors.white,
                  height: 1.2,
                ),
              ),
            ),
          ),
        ],
      ),

    ],
  ),
);

}

我的理解是,为了实现QuestionBuilder,我需要非常相似的Option Builder代码。我只想了解有关如何在另一个WidgetBuilder中实现WidgetBuilder 的一些建议/示例代码。

任何建议/帮助都将受到赞赏。

0 个答案:

没有答案