【发布时间】:2023-03-22 15:59:01
【问题描述】:
我有一个字符串数组,我使用 CheckboxListTile 小部件映射到不同的复选框,但我需要减少这些复选框之间的空间。
@override
_CheckBoxInListviewState createState() => _CheckBoxInListviewState();
}
class _CheckBoxInListviewState extends State<CheckBoxInListview> {
// bool _isChecked = false;
Map<String,bool> _texts = {
"InduceSmile.com": false,
"google.com": false,
"youtube.com": false,
"yahoo.com": false,
};
@override
Widget build(BuildContext context) {
return Column(
children: _texts.keys.map((text) => Theme(
data: ThemeData(
checkboxTheme: CheckboxThemeData(
visualDensity: VisualDensity.compact,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(topLeft: Radius.circular(4),topRight: Radius.circular(4),bottomLeft: Radius.circular(4),bottomRight: Radius.circular(4))))),
child: CheckboxListTile(
controlAffinity: ListTileControlAffinity.leading,
title: Transform.translate(offset: Offset(-15,0),
child: Text(text,style: TextStyle(fontSize: 13),),
),
value: _texts[text],
onChanged: (val) {
setState(() {
_texts[text] = val;
});
},
),
)).toList(),
);
}
}
【问题讨论】:
-
ListTiles 具有固定高度,因此很容易击中它们 - 你无法降低该高度,ListTile的文档说:“一个固定高度的行通常包含一些文本以及前导或尾随图标。” -
那么有什么更好的解决方法呢?
-
转到CheckboxListTile 文档并找到
CheckboxListTile isn't exactly what I want部分
标签: java android flutter dart android-layout