Выпадающая проблема после onChanged в Flutter / dart - PullRequest
0 голосов
/ 12 февраля 2019

Я работаю над выпадающим меню.В пункте меню есть строка, в которой я отображаю значок слева, а справа - текст.

Проблема:

Когда я выбираю элемент из выпадающего менюпоказывать значок и текст одновременно, но мне нужно показать только текст. При отладке я распечатываю значение, на котором отображается только правильный текст.

Примечание. Если удалить значок из строки, он будет работать нормально.

Консоль отладки

Элементы меню

Послевыберите элемент, значок и текст отображаются, но я хочу показать только текст

Ниже приведен код:

class _MyHomePageState extends State<MyHomePage>  {
  String _mySelection;
  List<Map> _myJson = [

  {"id":1,"name":"All List"},  
  {"id":2,"name":"Default"},
  {"id":3,"name":"Personal"},
  {"id":4,"name":"Shopping"},
  {"id":5,"name":"Wishlist"},
  {"id":6,"name":"Work"},
  {"id":7,"name":"Finished"}];
  @override
  void initState(){
    super.initState();
  }
Icon actionIcon =  Icon(Icons.search);
 Widget appBarTitle =  Text("AppBar Title");
  @override
  Widget build(BuildContext context) { 
    return Scaffold(

      appBar: AppBar( 

        title: Theme(
              data: Theme.of(context).copyWith(
                canvasColor: Theme.of(context).primaryColor
              ),
              child: DropdownButton(
              items: _myJson.map((item) {
                return  DropdownMenuItem(

                  child: Row(
                    children: <Widget>[
                        Padding(
                          padding: EdgeInsets.symmetric(horizontal: 10.0),
                          child: Icon(Icons.menu,size: 13),
                        ),
                      Text(
                        item['name'],
                        style: TextStyle(color: Colors.white, fontSize: 17,)
                      ),
                    ],
                  ),
                  value: item['name']
                );
              }).toList(),

              onChanged: (newvalue) {  
                setState(() {
                  _mySelection = newvalue;
                  print(_mySelection); 
                }); 
              },

              hint:  Text(_myJson[0]["name"],style: TextStyle(color: Colors.white,fontSize: 17)),

              value:_mySelection,
              ), // Your Dropdown Code Here,
            ),

           actions: <Widget>[

             IconButton(
              icon: Icon(Icons.search, color: Colors.white),onPressed:null,

        ),]


      ),
      body: null,


    );
  }//end of Widget build 


}//end of _MyHomePageState
...