Перересовать виджет в Flutter?

Имеется следующее приложение: введите сюда описание изображения

Вот иерархия виджетов: введите сюда описание изображения

  • Красным - projects_page.dart:

      import 'package:flutter/material.dart';
      import 'package:flutter/src/widgets/container.dart';
      import 'package:flutter/src/widgets/framework.dart';
    
     import '../widgets/ProjectList.dart';
     import '../widgets/TicketsList.dart';
    
      class ProjectsPage extends StatelessWidget {
        const ProjectsPage({super.key});
    
    
    @override
    Widget build(BuildContext context) {
      return Scaffold(
          appBar: AppBar(
            title: Text("Test"),
            centerTitle: true,
          ),
          body: Row(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              Expanded(
                child: ProjectList(),
              ),
              VerticalDivider(),
              Expanded(
                child: ProjectList.tl ,
              ),
            ],
          ));
    }
     }
    
  • содержит в себе два дочерних виджета - ProjectList (Показан желтым) и TicketsList (Показан зеленым) Где tl - это статическая переменная в классе ProjectList:

static TicketsList tl = TicketsList(d: [],);

При нажатии на элемент списка с проектами (слева) - я хочу обновлять список с тиккетами (справа). Я пытаюсь сделать это следующим образом:

onTap: () {
                          //Go to the next screen with Navigator.push
                          this.data.add(Text("T1"));
                      
                          ProjectList.tl =  new TicketsList(d: data,);
                          print("test");
                        },

И при вызове метода build - для TicketsList - хочу получить нужное количество элементов:

   body: ListView.builder(
  itemCount: this.d.length,
  

Проблема в том, что даже используя статическую - переменную tl - я не могу обновить визуальное отображение списка - справа.

Как правильно реализовать поставленную задачу?


Ответы (0 шт):