gpt4 book ai didi

dart - DropdownButtonFormField,具有固定宽度但动态文本项

转载 作者:IT王子 更新时间:2023-10-29 06:39:59 32 4
gpt4 key购买 nike

我认为我不太了解 Flutter 中的约束,所以请耐心等待!

我想要 DropdownButtonFormField 从数据库中填充其项目。该字符串可以是任何动态长度。所以我决定使用固定宽度的 DropdownButtonFormField 并且 DropdownMenuItem 将省略 Text

这是我试过的。

SizedBox(
width: 136.0,
child: DropdownButtonFormField<int>(
hint: Text("hintText")
decoration: InputDecoration(
contentPadding: const EdgeInsets.all(0.0),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.white),
),
isDense: true),
items: [
DropdownMenuItem<int>(
value: 0,
child: TextOneLine(
"less character",
),
),
DropdownMenuItem<int>(
value: 0,
child: TextOneLine(
"mooooorrrrreeee character",
),
)
]
),
);

class TextOneLine extends StatelessWidget {
final String data;
final TextStyle style;
final TextAlign textAlign;
final bool autoSize;

TextOneLine(
String data, {
Key key,
this.style,
this.textAlign,
this.autoSize = false,
}) : this.data = data,
assert(data != null),
super(key: key);

@override
Widget build(BuildContext context) {
return Text(
data,
style: style,
textAlign: textAlign,
maxLines: 1,
overflow: TextOverflow.ellipsis,
);
}
}
  • 我遇到溢出错误

overflow error

  • 但是当我点击 DropdownButtonFormField 时,DropdownMenuItem 列表被省略了。

drop down list with ellipsed text

如何消除溢出错误?我不能使用 Flexible 或 Expanded DropDownButtonFormField,因为字符串长度可能是动态的(可能比适合的长度更长)。

最佳答案

我知道现在分享答案可能有点晚,但我找到了一个简单的解决方法。只需将 isExpanded: true 添加到 DropdownButtonFormField。

  DropdownButtonFormField<int>(
hint: Text("hintText"),
isExpanded: true,
decoration: InputDecoration(
contentPadding: const EdgeInsets.all(0.0),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.white),
),
isDense: true),
items: [
DropdownMenuItem<int>(
value: 0,
child: Container(
width: 100,
child: TextOneLine(
"less character",
),
),
),
DropdownMenuItem<int>(
value: 0,
child: Container(
width: 100,
child: TextOneLine(
"mooooorrrrreeee character",
),
))
])

Before Adding isExpanded property After Adding isExpanded property

关于dart - DropdownButtonFormField,具有固定宽度但动态文本项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55073897/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com