当我们创建一个颤振式的ChipList时,当芯片溢出时,下一个芯片将取决于verticalDirection属性(可能是上/下)。
但是,是否有可能将芯片放置在水平的ListView中?因此,当它溢出时,用户可以向右滚动看到下一个芯片。
下面是过滤器芯片的代码部分:
Widget _SearchBody() => SingleChildScrollView(
child: Container(
child: FormBuilder(
key: _formKey,
child: Padding(
padding: EdgeInsets.all(8),
child: Column(
children: <Widget>[
...
...
Padding(
padding: EdgeInsets.only(top: 8),
child:
Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
Align(
alignment: Alignment.centerLeft,
child: Text('Tipe bahan bakar')),
FormBuilderFilterChip(
name: 'Fuel',
decoration: InputDecoration(),
spacing: 8,
options: [
FormBuilderFieldOption(
value: 'diesel', child: Text('Diesel')),
FormBuilderFieldOption(
value: 'hybrid', child: Text('Hybrid')),
FormBuilderFieldOption(
value: 'bensin', child: Text('Bensin')),
FormBuilderFieldOption(
value: 'listrik', child: Text('Listrik')),
],
),
]),
),
...
...注意:我使用颤振表单生成器包。
这是下面的结果,可以看到,第4芯片显示在其他3芯片的下面,而我想要的是4芯片仍然在第3芯片的右边,用户可以在屏幕的右边滚动看到第4芯片:屏幕截图。
谢谢。
发布于 2021-07-31 11:57:11
您可以使用具有水平轴的ListView来制作可向右滚动的芯片列表。
就这样做吧:
ListView(
scrollDirection: Axis.horizontal,
children: [
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
Chip(
label: Text("1"),
),
],
)就是这个。薯片不能再包装了。
如果您已经用一个水平的ListView包装这个ListView,您可以只使用一个列(就像您不能将两个常规的ListViews放在另一个列中一样)。
我希望我能帮助你!
https://stackoverflow.com/questions/68601660
复制相似问题