我会将下拉菜单值
1lakh
更改为 Rs. 6000
,然后滚动屏幕。所选的下拉值将更改。
请参阅我的下拉自定义小部件 我会将所有详细信息传递给小部件。 title、DropdownMenuItems、回调函数,并且还给出一个初始选择的值。
import 'package:flutter/material.dart';
import 'package:insurance/widgets/common/colors.dart';
class DropdownWidget extends StatefulWidget {
const DropdownWidget(
{super.key,
required this.title,
required this.dropdownList,
required this.selectedValue,
required this.callback});
final String title;
final List<String> dropdownList;
final String selectedValue;
final Function callback;
@override
State<DropdownWidget> createState() => _DropdownWidgetState();
}
class _DropdownWidgetState extends State<DropdownWidget> {
late String title = widget.title, selectedValue = widget.selectedValue;
late List<String> dropdownList = widget.dropdownList;
late Function callback = widget.callback;
@override
Widget build(BuildContext context) {
return SizedBox(
height: 50,
width: double.infinity,
child: ListTile(
title: SizedBox(
width: MediaQuery.of(context).size.width * 0.5,
child: Row(
children: [
Text(
title,
style: const TextStyle(
fontSize: 14,
fontFamily: 'Montserrat',
fontWeight: FontWeight.w600),
overflow: TextOverflow.ellipsis,
),
Visibility(
child: title == 'Seating Capacity'
? Text(
' *',
style: TextStyle(color: AppColor.red),
)
: const Text(''))
],
),
),
trailing: Container(
width: MediaQuery.of(context).size.width * 0.40,
height: 50,
padding: const EdgeInsets.only(left: 10),
decoration: BoxDecoration(
color: AppColor.white,
borderRadius: const BorderRadius.all(Radius.circular(7))),
child: DropdownButtonHideUnderline(
child: DropdownButton(
value: selectedValue,
borderRadius: const BorderRadius.all(Radius.circular(7)),
items: dropdownList.map((String value) {
return DropdownMenuItem(
value: value,
child: SizedBox(
width: MediaQuery.of(context).size.width * 0.30,
child: Text(
value.toString(),
style: TextStyle(
fontSize: 14,
fontFamily: 'Montserrat',
color: AppColor.black,
fontWeight: FontWeight.w500),
overflow: TextOverflow.clip,
),
),
);
}).toList(),
onChanged: (String? selectedData) {
print('hello');
callback(selectedData);
setState(() {
selectedValue = selectedData!;
});
},
),
),
),
),
);
}
}
颤动开关按钮也有同样的问题 我该怎么办?
如果您直接在 ListView 小部件内使用自定义 Dropdown 小部件,请替换为 SingleChildScrollview (child: Column( Children: [ DropdownWidget]),