我有一个ListView,我想在每个ListTile的右边都有一个开关。但开关似乎是向左对齐的。怎样才能使它向右对齐?
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Theme.of(context).backgroundColor,
body: Padding(
padding: EdgeInsets.all(30.0),
child: Column
(
mainAxisAlignment: MainAxisAlignment.center,
children:
[
Expanded(
flex: 1,
child: Stack
(
children: [
Align(
alignment: Alignment.topLeft,
child: NavigatePopButton(),
),
Align
(
alignment: Alignment.topCenter,
child: Text
(
'Settings',
style: Theme.of(context).textTheme.title,
overflow: TextOverflow.visible,
),
),
],
)
),
Expanded
(
flex: 4,
child: MediaQuery.removePadding
(
context: context,
removeTop: true,
child: ListView.separated
(
itemCount: 3,
separatorBuilder: (BuildContext context, int index) => Divider(height: 1.0),
itemBuilder: (BuildContext context, int index)
{
return ListTile
(
title: Text(settings()[index].value),
trailing: settings()[index].controller,
);
}
),
),
),
]
),
),
);
}
}


发布于 2020-02-26 04:50:53
ListTile有自己的Padding。尝试调整该值,
例如
return ListTile
(
contentPadding: EdgeInsets.only(right: 0.0),
title: Text(arguments.groups[index]),
onTap: () => onGroupTap(arguments.groups[index]),
trailing: Switch(
value: true,
onChanged: (isSwitched) => print('is switched'),
),
);发布于 2020-02-26 12:19:53
我不能重复你面临的问题。我看到Switch正确地向右对齐。示例工作代码如下:
return Scaffold(
appBar: AppBar(
title: Text('Demo'),
),
body: Center(
child: ListView.separated
(
itemCount: 5,
separatorBuilder: (BuildContext context, int index) => Divider(height: 0.0),
itemBuilder: (BuildContext context, int index){
return ListTile
(
title: Text('Test'),
onTap: () {},
trailing: Switch(
value: true,
onChanged: (isSwitched) => print('is switched'),
),
);
},
),
),
);

https://stackoverflow.com/questions/60402847
复制相似问题