如何解决颤动按钮列表
我坚持使用一个非常简单的pb:我想生成按钮而不定义列表索引。
class _MyAppState extends State<MyApp> {
final mybuttons = ['button 1','button 2','button 3']; // List defining the items
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Container(
width: double.infinity,decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,end: Alignment.bottomRight,colors: [Colors.yellow[200],Colors.orange[300]])),child: Column(
mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.center,children: <Widget>[
ButtonMenuList(mybuttons[0]),//button 1
ButtonMenuList(mybuttons[1]),//button 2
ButtonMenuList(mybuttons[2]),//button 3
]),Column(
mainAxisAlignment: MainAxisAlignment.start,children: <Widget>[Text(_usageRulesFr)],),]),));
}
class ButtonMenuList extends StatelessWidget {
final buttonmen;
ButtonMenuList(this.buttonmen);
@override
Widget build(BuildContext context) {//design button
);
}
}
这有效,但并非一定要重复ButtonMenuList(),我想根据List项自动生成它们。
解决方法
您可以这样做:
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Container(
width: double.infinity,decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,end: Alignment.bottomRight,colors: [Colors.yellow[200],Colors.orange[300]])),child: Column(
mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.center,// Here
children: mybuttons.map((item) => ButtonMenuList(item)).toList());
//
),Column(
mainAxisAlignment: MainAxisAlignment.start,children: <Widget>[Text(_usageRulesFr)],),]),));
}
或者,您可以这样做:
Column(
crossAxisAlignment: CrossAxisAlignment.center,children: <Widget>[
for(var item in mybuttons) ButtonMenuList(item)
],
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。