Как взять значение из выпадающего списка и отобразить на экране в виде текста? - PullRequest
0 голосов
/ 16 октября 2018

Как сделать «Стильный» выпадающим, получить данные из этого выпадающего списка и отобразить их в виде текста.Как я могу достичь этой задачи?Вот мой код, в котором я создаю флаттер-приложение, представляющее собой игру в бутылочку.Я сделал раскрывающийся список, но, как получить его значение и напечатать в виде текста на экране:

import 'package:flutter/material.dart';
import 'dart:math';

List<DropdownMenuItem<String>> listDrop = [];
loadData() {
  listDrop = [];
  listDrop.add(new DropdownMenuItem(
    child: new Text('Item 1'),
    value: "1",
  ));
  listDrop.add(new DropdownMenuItem(
    child: new Text('Item 2'),
    value: "2",
  ));
  listDrop.add(new DropdownMenuItem(
    child: new Text('Item 3'),
    value: "3",
  ));
}
class ImageRotate extends StatefulWidget {
  @override
  _ImageRotateState createState() => new _ImageRotateState();
}
class _ImageRotateState extends State<ImageRotate>
  with SingleTickerProviderStateMixin {
  AnimationController animationController;

  static var rng = new Random();
  double random_number = 0.0;
  );
}                  }
new Container(
  alignment: Alignment.centerRight,
  padding: new EdgeInsets.only(top: 200.0, right: 100.0),
  child: new DropdownButton(
    style: new TextStyle(
      color: Colors.redAccent,
      fontWeight: FontWeight.bold, 
    ),
    items: listDrop,
    hint: new Text(
      "Select"
    ),
    onChanged: loadData(),
  ),
),

1 Ответ

0 голосов
/ 16 октября 2018

Ваш код не понятен и вырезан, поэтому я добавил полный пример для вас.

import 'package:flutter/material.dart';

  void main() => runApp(Home());

  class Home extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      return MaterialApp(
        home:MultipleDropDownPage()
      );
    }
  }


  class MultipleDropDownPage extends StatefulWidget {
    MultipleDropDownPage({Key key}) : super(key: key);

    @override
    _MultipleDropDownPageState createState() => new _MultipleDropDownPageState();
  }

  class _MultipleDropDownPageState extends State<MultipleDropDownPage> {
    String selectedValues;

    @override
    void initState() {
      // TODO: implement initState
      super.initState();
      selectedValues = "1";
    }

    @override
    Widget build(BuildContext context) {
      return new Scaffold(
        appBar: new AppBar(
          title: Text('Multi Drop'),
        ),
        body:  Column(
          children: <Widget>[
            new Text(selectedValues.toString()),
            new DropdownButton<String>(
                  onChanged: (String value) {
                    setState(() {
                      selectedValues = value;
                    });
                  },
                  hint: new Text('Course Unit'),
                  value: selectedValues,
                  items: <String>["1", "2", "3", "4", "5"].map((String value) {
                    return new DropdownMenuItem<String>(
                      value: value,
                      child: new Text(value),
                    );
                  }).toList(),
                ),
          ],
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () {
            setState(() {
            });
          },
        ),
      );
    }
  }
...