Как реализовать Array в Dropdown во флаттере - PullRequest
0 голосов
/ 15 мая 2019

Я получаю разделенную запятыми строку с сервера.Затем я преобразую это в массив с помощью .split ().Я должен заполнить этот массив в раскрывающемся списке флаттера.Как это сделать.Вот мой код

Widget _visitorPurpose()  {
SharedPref.sharedPreferenceGet(StringsConstants.CLIENT_PURPOSE).then((dynamic res){
    purposeTemp = res;
    print(res);
    purposeTemp2 = purposeTemp.split(",");
});    return StreamBuilder(
  // stream: bloc.email,
  builder: (context, snapshot) {

    return new Container(
      padding: EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 0.0),
      child: new Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        children: <Widget>[
          new DropdownButton<String>(
            // value: selectedPurpose,
            hint: new Text(
              'Select visitng purpose',
              style: TextStyle(fontFamily: "Gotham"),
            ),
            items: <String>[purposeTemp]
                .map((purposeTemp) {
              return new DropdownMenuItem<String>(
                value: purposeTemp,
                child: new Text(
                  purposeTemp,
                  style: TextStyle(fontFamily: "Gotham"),

                ),

              );
            }).toList(),
            onChanged: (String purpose) {
              setState(() {
                selectedPurpose = purpose;
              });
            },
            // value: selectedPurpose,
          )
        ],
      ),
    );
  },
);

}

Так я конвертирую массив после ответа.(результат) - это ответ, который я получаю.

result.config.values.elementAt(19).value

Так определяются мои переменные.

 String purposeTemp  = "";
 var purposeTemp2 = [];

1 Ответ

0 голосов
/ 15 мая 2019

Получил ответ. Для других ссылок вот мой ответ.

Widget _visitorPurpose()  {
SharedPref.sharedPreferenceGet(StringsConstants.CLIENT_PURPOSE).then((dynamic res){
    purposeTemp = res;
    print(res);
    purposeTemp2 = purposeTemp.split(",");
});    return StreamBuilder(
  // stream: bloc.email,
  builder: (context, snapshot) {

    return Expanded( 
    child:new Container(
      padding: EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 0.0),
      child: new Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        children: <Widget>[
          new DropdownButton<String>(
            // value: selectedPurpose,
            hint: new Text(
              'Select visitng purpose',
              style: TextStyle(fontFamily: "Gotham"),
            ),
            items: purposeTemp2
                .map((purposeTemp) {
              return new DropdownMenuItem<String>(
                value: purposeTemp,
                child: new Text(
                  purposeTemp,
                  style: TextStyle(fontFamily: "Gotham"),

                ),

              );
            }).toList(),
            onChanged: (String purpose) {
              setState(() {
                selectedPurpose = purpose;
              });
            },
            // value: selectedPurpose,
          )
        ],
      ),
    ),
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...