我尝试在 Flutter 中创建一个下拉列表,我已将其调整为 Flutter 的文档,也尝试了文章,但是当我在我的应用程序中尝试它时,当我选择我想要的值之一时,它没有出现,我有再次单击 ,新选择的数据出现。 我该如何解决这个问题?
List listItem = [
'Transkrip Sementara',
'KHS',
];
String? selectedValue;
在小工具中
return Scaffold(
appBar: AppBar(
backgroundColor: primaryColor,
title: const Center(
child: Text(
'Transkrip Nilai',
),
),
actions: [
IconButton(
icon: const Icon(Icons.print),
onPressed: () {
showDialog(
context: context,
builder: (context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
elevation: 5,
child: SizedBox(
width: double.infinity,
child: Padding(
padding: const EdgeInsets.all(14),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Center(
child: Text(
'Cetak Transkrip/KHS',
style: bold5,
),
),
const Divider(),
Text(
'Pilih Jenis Transkrip',
style: regular5,
),
Container(
width: double.infinity,
height: 50,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
border: Border.all(
color: Colors.grey,
),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: DropdownButtonHideUnderline(
child: DropdownButton<String>(
hint: const Text('Pilih Jenis Transkrip'),
value: selectedValue,
onChanged: (newValue) {
setState(() {
selectedValue = newValue;
});
},
items: listItem.map((valueItem) {
return DropdownMenuItem<String>(
value: valueItem,
child: Text(
valueItem,
),
);
}).toList(),
),
),
),
),
使用
StatefulBuilder
阅读此内容以供参考:https://api.flutter.dev/flutter/widgets/StatefulBuilder-class.html
showDialog(
context: context,
builder: (context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
child: StatefulBuilder( // add this to your code
builder: (BuildContext context, StateSetter setState) {
return Your content dialog
.....