say*_*bir 11 flutter flutter-layout
我以这种方式使用 CheckboxListTile:
\nListTileTheme(\n contentPadding: EdgeInsets.only(right: 20.0),\n child: CheckboxListTile(\n controlAffinity: ListTileControlAffinity.leading,\n value: false,\n onChanged: (value) {},\n title: Text(\n "\xd8\xa7\xd9\x81\xd8\xb2\xd9\x88\xd8\xaf\xd9\x86 \xd8\xa8\xd9\x87 \xd9\x81\xd9\x87\xd8\xb1\xd8\xb3\xd8\xaa \xd9\xbe\xd8\xb1\xda\xa9\xd8\xa7\xd8\xb1\xd8\xa8\xd8\xb1\xd8\xaf\xd9\x87\xd8\xa7"\n ),\n ),\n),\nRun Code Online (Sandbox Code Playgroud)\n其结果是:
\n\n如何减少复选框与其标题之间的间距?
\n小智 29
使用 Transform.translate
Transform.translate(
offset: const Offset(-20, 0),
child: childWidget(),
)
Run Code Online (Sandbox Code Playgroud)
完整示例
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: CheckboxListTile(
value: isChecked,
controlAffinity: ListTileControlAffinity.leading,
contentPadding: EdgeInsets.zero,
title: Transform.translate(
offset: const Offset(-20, 0),
child: RichText(
text: TextSpan(
text: S.of(context).iAgreeWith,
style: TextStyle(
color: Theme.of(context).hintColor,
fontWeight: FontWeight.w400),
children: <TextSpan>[
TextSpan(
text: S.of(context).terms,
style: TextStyle(
decoration: TextDecoration.underline,
color: Theme.of(context).hintColor,
fontWeight: FontWeight.w400),
recognizer: TapGestureRecognizer()
..onTap = () {
// Single tapped.
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => WebView(
url:
ksportsCornerWebsitePolicyUrl,
title: S.of(context).termsCap,
),
));
},
),
TextSpan(
text: " " + S.of(context).and + " ",
style: TextStyle(
color: Theme.of(context).hintColor,
fontWeight: FontWeight.w400)),
TextSpan(
text: S.of(context).privacyPolicy,
style: TextStyle(
decoration: TextDecoration.underline,
color: Theme.of(context).hintColor,
//fontSize: 14.0.sp,
fontWeight: FontWeight.w400),
recognizer: TapGestureRecognizer()
..onTap = () {
// Single tapped.
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => WebView(
url:
ksportsCornerWebsitePolicyUrl,
title: S
.of(context)
.privacyPolicyCaps,
),
));
},
),
],
),
),
),
activeColor: Theme.of(context).hintColor,
checkColor: Theme.of(context).cursorColor,
onChanged: (value) {
isChecked = !isChecked;
setState(() {});
},
),
),
Run Code Online (Sandbox Code Playgroud)
Alo*_*lok 10
在CheckBoxListTile,可能很难实现你想要的。然而,总有一个解决方法,那就是使用Row(). 另外,我们将使用它FlatButton()来获得相同的效果。
这里的问题是,在 中FlatButton(),你只需要做与onChanged在 中相同的事情Checkbox()
bool _myBool = false;\n\n Container(\n child: FlatButton(\n // here toggle the bool value so that when you click \n // on the whole item, it will reflect changes in Checkbox\n onPressed: () => setState(() => _myBool = !_myBool),\n child: Row(\n mainAxisAlignment: MainAxisAlignment.start,\n children: [\n SizedBox(\n height: 24.0,\n width: 24.0,\n child: Checkbox(\n value: _myBool,\n onChanged: (value){\n setState(() => _myBool = value);\n }\n )\n ),\n // You can play with the width to adjust your\n // desired spacing\n SizedBox(width: 10.0),\n Text("\xd8\xa7\xd9\x81\xd8\xb2\xd9\x88\xd8\xaf\xd9\x86 \xd8\xa8\xd9\x87 \xd9\x81\xd9\x87\xd8\xb1\xd8\xb3\xd8\xaa \xd9\xbe\xd8\xb1\xda\xa9\xd8\xa7\xd8\xb1\xd8\xa8\xd8\xb1\xd8\xaf\xd9\x87\xd8\xa7")\n ]\n )\n )\n )\nRun Code Online (Sandbox Code Playgroud)\n如果您希望Checkbox()位于右侧,只需交换Text()和 的位置即可Checkbox()。休息将保持不变。
添加horizontalTitleGap: 0,到 ListTileTheme。
ListTileTheme(\n horizontalTitleGap: 0,\n child: CheckboxListTile(\n controlAffinity: ListTileControlAffinity.leading,\n value: false,\n onChanged: (value) {},\n title: Text(\n "\xd8\xa7\xd9\x81\xd8\xb2\xd9\x88\xd8\xaf\xd9\x86 \xd8\xa8\xd9\x87 \xd9\x81\xd9\x87\xd8\xb1\xd8\xb3\xd8\xaa \xd9\xbe\xd8\xb1\xda\xa9\xd8\xa7\xd8\xb1\xd8\xa8\xd8\xb1\xd8\xaf\xd9\x87\xd8\xa7"\n ),\n ),\n),\nRun Code Online (Sandbox Code Playgroud)\n前 :
\n
后:
\n
| 归档时间: |
|
| 查看次数: |
9153 次 |
| 最近记录: |