【发布时间】:2021-03-24 11:09:01
【问题描述】:
class EventCreator extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget> [
Positioned.fill(
child: Image(
image: AssetImage('images/planning.jpg'),
fit: BoxFit.cover,
),
),
Container(
child: Column(
children: <Widget>[
//DropdownBehavior(valueArg, listArg), idea
DropdownBehavior(), // current
],
),
),
],
),
);
}
}
class DropdownBehavior extends StatefulWidget {
DropdownBehavior({Key key}) : super(key: key);
@override
_DropdownBehavior createState() => _DropdownBehavior();
}
class _DropdownBehavior extends
State<DropdownBehavior> {
String dropdownValue = "Public event";
List<String> dropdownlist = ['Public event', ['Private event'];
// These should be variables,
@override // and be modifiable in EventCreator
Widget build(BuildContext context) {
return DropdownButton<String>(
value: dropdownValue,
elevation: 16,
style: TextStyle(color: Colors.white),
dropdownColor: Colors.black,
underline: Container(
height: 2,
color: Colors.deepPurpleAccent,
),
onChanged: (String newValue) {
setState(() {
dropdownValue = newValue;
});
},
items: dropdownlist.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
);
}
}
我有以下代码。我希望能够将我的类 DropdownBehavior 重新用于各种类型的值。因此,我相信我需要一个可以传递给 DropdownBehavior 构造函数的变量,从而每次更改类的工作方式。
我在DropdownBehavior中尝试了一些不同的构造函数实现,但似乎我对Flutter中的States了解不足,因为我无法理解它是如何工作的。我也不明白构造函数中“Key”的使用以及它是如何使用的。
我使用DropdownButton sample code 进行一般实现。
我是 Flutter 和应用程序开发的新手,所以我很想解释一下为什么我正在做的事情很愚蠢。
TL;DR:想要一个可用于下拉菜单的通用类,我可以在其中填写初始提示值的值和可供选择的整个值列表。
【问题讨论】:
标签: android-studio flutter dart