Как реализовать замену строк в тексте с помощью DropDownButton?

#flutter #android-studio #dart

#flutter #android-studio #dart

Вопрос:

Я новичок в Flutter, учусь самостоятельно. Я создаю проект приложения с книгами. На странице книги есть баннер заголовка, под ним DropDownButton и текст главы книги.

Текст глав перемещается в отдельный класс строк (Vincenco) и реализуется через текст.

Вопрос: как заставить DropDownButton изменить строку (texto1) на другую строку (texto2)?

P.s. ‘texto1a’ и ‘texto2a’ — это названия главы книги над текстом главы

  class _BookMainWidgetState extends State<BookMainWidget> {

  String texto1 = Vincenco.v1;
  String texto1a = Vincenco.v1a;
  String texto2 = Vincenco.v2;
  String texto2a = Vincenco.v2a;

  var _locations = [
    'Глава 1',
    'Глава 2',
    'Глава 3',
    'Глава 4',
    'Глава 5',
  ];
  var _currentItemSelected = 'Глава 1';

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        Padding(
          padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
          child: Stack(
            children: [
              Container(
                decoration: BoxDecoration(
                  color: Colors.white,
                  border: Border.all(color: Colors.black.withOpacity(0.2)),
                  borderRadius: BorderRadius.all(Radius.circular(10)),
                  boxShadow: [
                    BoxShadow(
                      color: Colors.black.withOpacity(0.2),
                      blurRadius: 8,
                      offset: Offset(0, 3),
                    ),
                  ],),
                clipBehavior: Clip.hardEdge,
                child: Row(
                    children: [
                      Expanded(
                        child: Column(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              DropdownButton(
                                  hint: Text(' Выберите главу...'),
                                  isExpanded: true,
                                  onChanged: (newValue) {},
                                  value: _currentItemSelected,
                                  items: _locations.map((
                                      String dropDownStringItem) {
                                    return new DropdownMenuItem<String>(
                                      value: dropDownStringItem,
                                      child: new Text(dropDownStringItem),
                                    );
                                  }).toList()
                              ),
                              SizedBox(height: 10),
                              Column(
                                  children: [
                                    Padding(
                                      padding: const EdgeInsets.all(
                                          8.0),
                                      child:
                                      Text(texto1a,
                                        style: TextStyle(
                                            color: Colors.brown,
                                            fontSize: 16,
                                            fontWeight: FontWeight
                                                .bold),
                                      ),
                                    ),
                                    Padding(
                                      padding: const EdgeInsets.all(
                                          8.0),
                                      child:
                                      Text(texto1,
                                        style: TextStyle(fontSize: 14,
                                            fontWeight: FontWeight
                                                .bold),
                                      ),
                                    ),
                                  ]
                              ),
 

Комментарии:

1. codesinsider.com/flutter-dropdown-button-example

2. Конструкция DropDownButton мне понятна. Меня интересует, как заставить его изменить значение текста в другом виджете

3. итак, вы хотите, чтобы все, что выбрано в раскрывающемся списке, появлялось вместо предыдущего текста?

4. Да, точно. Выбранный элемент выпадающего списка изменил текстовое содержимое на соответствующий фрагмент