Flutter DropdownButton показывает какое-то странное поведение: он отображает виджет disabledHint
вместо выбранного значения, когда его отключают (что необходимо сделать, установив onChanged
в ноль).
Как отобразить выбранное значение?
Вот мой пример кода:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'DropdownButton disable problem',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
bool _enabled = true;
int value;
List<DropdownMenuItem<int>> items = [
DropdownMenuItem(
value: 11,
child: Text('asdf'),
),
DropdownMenuItem(
value: 27,
child: Text('qwert'),
),
DropdownMenuItem(
value: 31,
child: Text('yxcv'),
)
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('DropdownButton problem'),
),
body: Center(
child: Column(
children: <Widget>[
Text(
'Disabling the DropdownButton looses its selection',
),
Switch(
onChanged: (v) => setState(() {
_enabled = v;
}),
value: _enabled,
),
DropdownButton(
items: items,
onChanged: _enabled
? (v) => setState(() {
value = v;
})
: null,
value: value,
)
],
),
),
);
}
}