TreeView в Drawer

Как добавить TreeView в Drawer на Flutter? И должен быть DrawerHeader.
Или какой элемент можно использовать как TreeView?
Этот код не работает

import 'package:flutter/material.dart';
import 'package:flutter_treeview/tree_view.dart';

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

TreeView tree = TreeView(
  controller: TreeViewController(children: [
    Node(key: "1", label: "Item1", children: [
      Node(key: "1.1", label: "Item1.1"),
    ]),
  ]),
);

class USU extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    MaterialApp window = new MaterialApp(
      home: Scaffold(
          appBar: AppBar(),
          drawer: Drawer(
            child: ListView(
              children: [
                DrawerHeader(child: Text("Drawer")),
                tree,
              ],
            ),
          )),
      debugShowCheckedModeBanner: false,
    );
    return window;
  }
}

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


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

Автор решения: MiT

Из-за того что flutter_treeview использует для своей отрисовки ListView, у вас получался ListView в ListView (из-за этого был конфликт). Для того чтобы решить конфликт добавим shrinkWrap: true (убирает ограничения по размеру) и physics: ClampingScrollPhysics() (прокрутка внутри содержимого) в TreeView (второй ListView):

import 'package:flutter/material.dart';
import 'package:flutter_treeview/tree_view.dart';

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

class USU extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(),
        drawer: Drawer(
          child: ListView(
            children: [
              DrawerHeader(child: Text("Drawer")),
              TreeView(
                shrinkWrap: true,
                physics: ClampingScrollPhysics(),
                controller: TreeViewController(children: [
                  Node(key: "1", label: "Item1", children: [
                    Node(key: "1.1", label: "Item1.1"),
                  ]),
                ]),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
→ Ссылка