A有一个DropdownButtonFormField
,其中将长文本显示为项目之一。长文本能够在下拉菜单中多行显示。
String _selectedState = '';
List<String> _stateList = ['a very very long long long long long text'];
DropdownButtonFormField<String>(
isExpanded: true,
value: _selectedState,
onChanged: (state) {
},
items: _stateList
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
),
如何解决这个问题?
答案 0 :(得分:0)
将overflow: TextOverflow.visible
添加到您的代码中,如下所示:
items: _stateList
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value,
overflow: TextOverflow.visible
),
);
}).toList(),
答案 1 :(得分:0)
我不知道为什么这不是默认行为,但是如果您希望在所选项目上使用 TextOverflow.ellipsis
并且仍然希望在下拉菜单打开时显示完整文本,您可以使用 {{1 }}:
selectedItemBuilder
由于 flutters items: _stateList
.map((value) => DropdownMenuItem<String>(
value: value,
child: Text(value),
))
.toList(),
selectedItemBuilder: (context) => _stateList
.map((value) => Text(value, overflow: TextOverflow.ellipsis))
.toList(),
是 weird,因为它总是切断完整的单词,您可能想用强制单行切换到 TextOverflow.ellipsis
:
TextOverflow.fade