@KMks

Flutter (Динамические блоки) show/hide. Каким образом разделить раскрытие блоков?

Помогите разобраться с 1 моментом.
У меня выводятся динамически список объектов. В каждом из них есть кнопка при нажатии на которую, должен раскрываться блок внутри каждого элемента.
Выглядит это так:
61c4459de869b610251360.png
61c445b9f38f3909423604.png

В данный момент реализовано след. образом:
Visibility(
                                              visible:_visible,
                                              child: Container(
                                                child: Column(
                                                  children: [
                                                    Html(
                                                      data: ('<ul><li>ТЕКСТ</li><li>ТЕКСТ</li></ul>'),
                                                      style: {
                                                        'ul':Style(

                                                        ),
                                                        'li':Style(

                                                          color:  Colors.black,
                                                        )
                                                      },
                                                    ),
                                                  ],
                                                ),
                                              ),


                                            )


На клик кнопки реализовал метод:
void _toggle() {
    setState(() {
      _visible = !_visible;
    });
  }


Но сейчас раскрытие происходит для всех элементов и соответственно закрытие.
Подскажите, каким образом реализовать раздельное открытие и закрытие блоков.
Спасибо.
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
@KMks Автор вопроса
Решил вопрос.
Возможно кому-то пригодится.
void showHide(int i){
    setState((){
      showQty[i]=!showQty[i];
    });
  }

Visibility(
                      visible:showQty[position],
                      child: Container(
                        child: Column(
                          children: [
                            Html(
                              data: ('${article[position].description}'),
                              style: {
                                'ul':Style(

                                ),
                                'li':Style(

                                  color:  Colors.black,
                                )
                              },
                            ),
                          ],
                        ),
                      ),


                    ),


И обязательно объявить:
List showQty=[];

И еще:
@override
  void initState() {
    for(int i=0;i<10;i++){
      showQty.add(false);
    }

    super.initState();

  }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы