flutter - 如何删除/减少 Flutter 中 CheckboxListTile 的文本和复选框之间的空间?
问题描述
如何减少/删除下图中 CheckboxListTile 和 Text 之间的空间?
似乎以下行仅删除了周围的空间。
CheckboxListTile(
title: Text('Account number not available'),
contentPadding: EdgeInsets.all(0),
controlAffinity: ListTileControlAffinity.leading,
)
解决方案
CheckboxListTile
正在使用ListTile
which 具有与 contentPadding 相同的填充,因此这不是问题,因为您将其设置为 0.0,但它也有一个名为 visualDensity 的字段,您无法从CheckboxListTile
. 此 visualDensity 继承自ThemeData
. 所以要么你将VisualDensity.compact
在你的主题中设置(你仍然无法完全删除你突出显示的空间,但它会更小,这取决于你当前的ThemeData
设置),或者LabeledCheckbox
像我一样制作一个自定义小部件以获得完全的灵活性这并不难。
编辑:
我正在使用这个自定义小部件,您可以控制与fieldLabeledCheckbox
之间的间隙,它也被包裹起来,因此它也注册了对文本的点击,而不仅仅是复选框本身。CheckBox
Text
gap
GestureDetector
class LabeledCheckbox extends StatelessWidget {
const LabeledCheckbox({
this.label,
this.contentPadding,
this.value,
this.onTap,
this.activeColor,
this.fontSize,
this.gap = 4.0,
this.bold = false,
});
final String label;
final EdgeInsets contentPadding;
final bool value;
final Function onTap;
final Color activeColor;
final double fontSize;
final double gap;
final bool bold;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => onTap(!value),
child: Padding(
padding: contentPadding ?? const EdgeInsets.all(0),
child: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Checkbox(
value: value,
activeColor: activeColor,
visualDensity: VisualDensity.compact,
onChanged: (val) => onTap(val),
),
SizedBox(
width: gap,
), // you can control gap between checkbox and label with this field
Flexible(
child: Text(
label,
style: TextStyle(
fontSize: fontSize,
fontWeight: bold ? FontWeight.bold : FontWeight.normal,
),
),
),
],
),
),
);
}
}
推荐阅读
- postman - Postman REST API:比较两个 XML 响应
- php - Laravel 5:7 根据要循环的记录数量为 Symfony 的进度条确定合理的 setRedrawFrequency 以避免 CLI 闪烁
- apache-spark - Spark写入输出为固定宽度
- ios - 将 ARFaceGeometry 的实时 AR 数据捕获到自定义 Metal 管道
- c# - 尝试绑定此 ValueConverter 时出现“只能在 DependencyObject 的 DependencyProperty 上设置绑定”错误
- javascript - 为什么 y 坐标属性不更新?
- ruby-on-rails - Rails 5:以重音字符开头的“人性化”短语不会大写它们
- firebase - 在 Flutter 应用程序中使用 Firestore 中的离线持久性
- html - 无法使用 CSS 将无序列表设置为导航栏
- c++ - 动态分配的 C 风格字符串的字符数超过给定长度?