按照标题,我想在DropdownButton
内添加TextFormField
(或prefix
?)中的prefixIcon
。文本字段用于金额,下拉列表用于其货币。
我的直截了当的方法在视觉上有效,但是我无法点击下拉列表来显示列表。每次我点击它,它都会显示(并立即隐藏)文本字段本身的键盘。
如何做到?
TextFormField(
initialValue: '10.00',
decoration: InputDecoration(
prefix: DropdownButtonHideUnderline(
child: DropdownButton(
items: CURRENCY_CODES,
onChanged: _onCurrencyChanged,
value: _currency,
),
),
),
),
答案 0 :(得分:1)
问题
当您点击Widget
中包含的prefix
时,TextFormField
将聚焦并出现键盘。但是由于Widget
是DropdownButton
,因此在显示DropdownItems
时,键盘被关闭了,奇怪的是,DropdownItems
也被关闭了。
如果尝试使用PopupMenuButton
而不是DropdownButton
,则会发生类似的情况:先显示键盘,然后将其关闭,但在这种情况下,不会关闭PopupMenuItems
。为此,我可以使用焦点侦听器和标志来解决,但这不是很好。
解决方案
采用另一种方法,一种方法是将Container
与所需的装饰一起使用,将包含Row
/ DropdownButton
和{{ 1}}。
实施
如果您使用PopupMenuButton
,则将焦点放在TextFormField
上,然后点击DropdownButton
时,键盘将被关闭,而TextFormField
也被关闭了。这是一个未解决的问题:DropdownButton bad behaviour when tapped and keyboard is showing
如果您使用DropdownButton
,则可以执行以下操作:
DropdownItems