gpt4 book ai didi

flutter - 在 Flutter 中垂直展开 ListView

转载 作者:IT王子 更新时间:2023-10-29 07:03:28 29 4
gpt4 key购买 nike

我有一个允许用户选择多个选项的下拉列表。选择一个选项时,它会添加到列表中。我需要显示该列表并在将项目添加到列表时让它垂直扩展。

final List<String> _selectedValues = <String>[];

onChanged Action :

  onChanged: (String newValue) {
setState(() {
if (_selectedValues.contains(newValue))
_selectedValues.remove(newValue);
else
_selectedValues.add(newValue);
});
},

这就是我生成具有固定高度和滚动列表的方式。我不希望它滚动,理想情况下它会增长并按下按钮:

 Widget _selectedValuesList() {
return _selectedValues.isEmpty
? Center(child: Text('Empty'))
: ListView.builder(
itemCount: _selectedValues.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(_selectedValues[index]),
);
},
);
}


body: Form(
key: _formKey,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 24.0),
child: Column(
children: <Widget>[
TextFormField(
...
),
_categoryDropdown(),
TextFormField(
...
),
_valuesDropdown(),

//This is where I include the list
//********************************
Expanded(
child: _selectedValuesList(),
),
//********************************
_showErrorMessage(),
Container(
padding: const EdgeInsets.symmetric(vertical: 16.0),
alignment: Alignment.center,
child: SizedBox(
width: double.infinity,
child: RaisedButton(
...,
),
child: Text(
_buttonText,
style: ...,
),
onPressed: () async {
...
},
),
),
),
],
),
),
),

最佳答案

这是一个有趣的问题。如果我们不是将 ListView 放入您的 Column 中,而是动态创建该列的所有子项,会怎样:只需将最初位于 ListView 中的值放入Column 而不是?

一个简化的例子:

List values = ["pear", "apple", "strawberry"];

@override
Widget build(BuildContext context) {
List<Widget> children = [];

Widget header = Padding(
padding: EdgeInsets.all(10.0),
child: Text("Title"),
);

Widget button = FlatButton(
onPressed: () {
setState(() {
values.add("more fruit");
});
},
child: Text("hungry? push me"),
);

// add the children now
children.add(header);
// this would have been the listview
values.forEach((value) {
children.add(ListTile(title: Text(value)));
});
children.add(button);

return Scaffold(
body: SingleChildScrollView(
child: Column(children: children),
),
);
}

关于flutter - 在 Flutter 中垂直展开 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017875/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com