gpt4 book ai didi

Flutter DropdownButton - 添加用于分隔项目的标题

转载 作者:行者123 更新时间:2023-12-04 12:37:57 24 4
gpt4 key购买 nike

我正在尝试实现 DropdownButton可以用标题将特定项目彼此分开(请参阅下图中的所需输出,标题为绿色)

The green title separates the items of the dropdown

就像在示例中一样,我想将这些绿色标题添加到我现有的 DropdownButton 中。 ,但没有找到任何向我展示如何向 DropdownButton 添加项目以外的内容的内容。

我也尝试从 DropdownButton 切换到 ListViewExpansionTile但我想保留 DropdownButton 的行为...

是否可以将这些标题添加到 DropdownButton items ?或者我应该尝试通过其他方式实现它?我现在卡住了,不知道如何继续

最佳答案

在 dartpad 中试试这个代码:

 import 'package:flutter/material.dart';

void main() {
runApp(
MaterialApp(
debugShowCheckedModeBanner: false,

home: MyApp(),
),
);
}

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return HomeScreen();
}
}

class HomeScreen extends StatefulWidget {
@override
HomeScreenState createState() => HomeScreenState();
}

class HomeScreenState extends State<HomeScreen> {
String dropdownValue;
List<Product> products = [
Product(name: 'sep1', type: 'sep'),
Product(name: 'milk', type: 'data'),
Product(name: 'oil', type: 'data'),
Product(name: 'sep2', type: 'sep'),
Product(name: 'suger', type: 'data'),
Product(name: 'salt', type: 'data'),
Product(name: 'sep3', type: 'sep'),
Product(name: 'potatoe', type: 'data'),
Product(name: 'tomatoe', type: 'data'),
Product(name: 'apple', type: 'data'),
];

@override
void initState() {
super.initState();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('text')),
body: Column(
children: [
Text('test'),
Expanded(
child: DropdownButton<String>(
value: dropdownValue,
items: products.map((value) {
return DropdownMenuItem(
value: value.name,
child: value.type == 'data'
? Text(value.name)
: Divider(
color: Colors.red,
thickness: 3,
),
);
}).toList(),
onChanged: (newValue) {

setState(() {

dropdownValue = newValue;

});
print('$newValue $dropdownValue');

},
),
),
],
),
);
}
}

class Product {
String name;
String type;

Product({this.name, this.type});
}

关于Flutter DropdownButton - 添加用于分隔项目的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59394209/

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