Android 下拉按钮值文本在颤振/省道中未更改
我对我的代码有异议,我定义了一个下拉按钮菜单,它将显示参数,当我点击参数时,它将选择该值,它不会在下拉按钮中更改。另外,我的代码是在有状态小部件中定义的。 这是我的密码:Android 下拉按钮值文本在颤振/省道中未更改,android,ios,flutter,dart,dropdownbutton,Android,Ios,Flutter,Dart,Dropdownbutton,我对我的代码有异议,我定义了一个下拉按钮菜单,它将显示参数,当我点击参数时,它将选择该值,它不会在下拉按钮中更改。另外,我的代码是在有状态小部件中定义的。 这是我的密码: String dropdownValue; return DropdownButton<String>( value: dropdownValue, //icon: const Icon(Icons.arrow_downward,),
String dropdownValue;
return DropdownButton<String>(
value: dropdownValue,
//icon: const Icon(Icons.arrow_downward,),
iconSize: 22,
elevation: 16,
style: TextStyle(color: Colors.black),
underline: Container(
height: 2,
color: Colors.black,
),
isDense: true,
hint: Padding(
padding: EdgeInsets.only(right: MediaQuery.of(context).size.width / 36),
child: Text('انتخاب موقعیت',
style: TextStyle(
fontFamily: "IranSans"
),
),
),
onChanged: (String newValue) {
setState(() {
dropdownValue = newValue;
});
},
items: <String>['One', 'Two', 'Three', 'Four', 'Five']
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
),
字符串下拉值;
返回下拉按钮(
value:dropdownValue,
//图标:常量图标(图标。向下箭头,),
iconSize:22,
海拔:16,
样式:TextStyle(颜色:Colors.black),
下划线:容器(
身高:2,
颜色:颜色,黑色,
),
是的,
提示:填充(
padding:EdgeInsets.only(右:MediaQuery.of(context.size.width/36),
儿童:文本,
样式:TextStyle(
丰特家族:“伊朗人”
),
),
),
onChanged:(字符串newValue){
设置状态(){
dropdownValue=newValue;
});
},
项目:[‘一’、‘二’、‘三’、‘四’、‘五’]
.map((字符串值){
返回下拉菜单项(
价值:价值,
子项:文本(值),
);
}).toList(),
),
您可以尝试:
String dropdownValue = 'One';
return DropdownButton<String>(
value: dropdownValue,
icon: const Icon(Icons.arrow_downward),
iconSize: 24,
elevation: 16,
style: const TextStyle(color: Colors.deepPurple),
underline: Container(
height: 2,
color: Colors.deepPurpleAccent,
),
onChanged: (String? newValue) {
setState(() {
dropdownValue = newValue!;
});
},
items: <String>['One', 'Two', 'Free', 'Four']
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
);
String-dropdownValue='One';
返回下拉按钮(
value:dropdownValue,
图标:常量图标(图标。向下箭头),
iconSize:24,
海拔:16,
样式:const TextStyle(颜色:Colors.deepPurple),
下划线:容器(
身高:2,
颜色:颜色。深紫色,
),
onChanged:(字符串?newValue){
设置状态(){
dropdownValue=newValue!;
});
},
物品:[“一”、“二”、“免费”、“四”]
.map((字符串值){
返回下拉菜单项(
价值:价值,
子项:文本(值),
);
}).toList(),
);
您正在本地状态中声明变量。相反,您应该全局声明变量
class DropDown extends StatefulWidget {
@override
_DropDowneState createState() =>
_DropDownState();
}
class _DropDownState extends State<DropDown> {
String dropdownValue;
@override
Widget build(BuildContext context) {
return DropdownButton<dynamic>(
value: dropdownValue,
//icon: const Icon(Icons.arrow_downward,),
iconSize: 22,
elevation: 16,
style: TextStyle(color: Colors.black),
underline: Container(
height: 2,
color: Colors.black,
),
isDense: true,
hint: Padding(
padding: EdgeInsets.only(right: MediaQuery.of(context).size.width / 36),
child: Text(
'انتخاب موقعیت',
style: TextStyle(fontFamily: "IranSans"),
),
),
items: <String>['One', 'Two', 'Three', 'Four', 'Five']
.map<DropdownMenuItem<dynamic>>((String value) {
return DropdownMenuItem<dynamic>(
value: value,
child: Text(value),
);
}).toList(),
onChanged: (newValue) {
setState(() {
dropdownValue = newValue;
print(dropdownValue);
});
},
);
}}
类下拉列表扩展StatefulWidget{
@凌驾
_DropDowneState createState()=>
_DropDownState();
}
类_DropDownState扩展状态{
字符串下拉值;
@凌驾
小部件构建(构建上下文){
返回下拉按钮(
value:dropdownValue,
//图标:常量图标(图标。向下箭头,),
iconSize:22,
海拔:16,
样式:TextStyle(颜色:Colors.black),
下划线:容器(
身高:2,
颜色:颜色,黑色,
),
是的,
提示:填充(
padding:EdgeInsets.only(右:MediaQuery.of(context.size.width/36),
子:文本(
'انتخاب موقعیت',
样式:TextStyle(fontFamily:“伊朗人”),
),
),
项目:[‘一’、‘二’、‘三’、‘四’、‘五’]
.map((字符串值){
返回下拉菜单项(
价值:价值,
子项:文本(值),
);
}).toList(),
一旦更改:(newValue){
设置状态(){
dropdownValue=newValue;
打印(下拉值);
});
},
);
}}
使用您的解决方案解决此问题谢谢。很高兴听到它对您有所帮助。