如何在Flutter的复选框中添加标签(标题文本)?

时间:2018-12-18 23:43:05

标签: checkbox dart flutter

我正在使用Checkbox来查看其工作原理,但是看不到标题选项。

Checkbox(
  title: Text("Checkbox label"),  // The named parameter 'title' isn't defined.
  value: true,
  onChanged: (newValue) { },
);

我必须创建自己的窗口小部件以为其添加标题吗?

1 个答案:

答案 0 :(得分:12)

如果您需要带有标签的Checkbox,则可以使用CheckboxListTile

enter image description here

  CheckboxListTile(
    title: Text("title text"), //    <-- label
    value: checkedValue,
    onChanged: (newValue) { ... },
  )

如果您想要文本左侧的复选框,则可以设置controlAffinity参数。

enter image description here

  CheckboxListTile(
    title: Text("title text"),
    value: checkedValue,
    onChanged: (newValue) { ... },
    controlAffinity: ListTileControlAffinity.leading,  //  <-- leading Checkbox
  )

注释

  • 由于它是一个ListTile,因此单击行上的任何位置都会激活onChanged()回调。不过,您需要自己使用正确的检查值来重建它。参见this answer
  • 另一种解决方案是使用带有复选框的行和文本小部件来制作自己的小部件。不过,您可能希望将其包装在手势检测器中,以便轻敲文本也将触发onChanged()回调。您可以以CheckboxListTile source code作为参考。