我尝试在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(),
),
),
),
),
1条答案
按热度按时间cbjzeqam1#
使用
StatefulBuilder
请阅读以下内容以供参考:https://api.flutter.dev/flutter/widgets/StatefulBuilder-class.html