Flutter - ListView не прокручивается внутри ящика

Я использовал ListView внутри виджета Drawer и Used ListView.Builder внутри этого ListView для печати меню. Теперь все меню напечатаны идеально, но ящик не прокручивается. Как заставить его прокручиваться?

Widget build(BuildContext context) {
    return Drawer(
      child: ListView(
        padding: EdgeInsets.zero,
        children: <Widget>[
          DrawerHeader(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.end,
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Text('Guide to Make Money'),
              ],
            ),
            decoration: BoxDecoration(
              image: DecorationImage(
                  image: AssetImage('images/header_photo.jpg'),
                  fit: BoxFit.cover),
            ),
          ),
          Container(
            height: double.maxFinite,
            child: ListView.builder(
              padding: EdgeInsets.only(top: 0.0),
              itemBuilder: (context, index) {
                final profession = professionList[index];
                return Ink(
                  color: selectedLink == index ? Colors.blueGrey : null,
                  child: ListTile(
                    title: Text(profession.heading),
                    onTap: () {
                      setState(() {
                        selectedLink = index;
                      });

                      Navigator.pushNamed(context, profession.destinationRoute);
                    },
                    leading: index == 0
                        ? Icon(
                            Icons.home,
                          )
                        : Icon(Icons.description),
                  ),
                );
              },
              itemCount: professionList.length,
            ),
          ),
        ],
      ),
    );
  }

Мне нужно заставить его прокрутить... Пожалуйста, помогите PS: Привет, я новичок во Flutter, а также на переполнении стека.. Я тоже хотел загрузить изображение, но этот веб-сайт говорит, что мне нужно иметь как минимум 10 репутации... Итак, У меня есть только Кодекс для вас.. Надеюсь, вы сможете разобраться и помочь мне с этим.

3 ответа

Попробуй это, Column вместо ListView, а также Expanded вместо Container(height: double.maxFinite

  return Drawer(
    child: Column(
      children: <Widget>[
        DrawerHeader(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.end,
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
              Text('Guide to Make Money'),
            ],
          ),
          decoration: BoxDecoration(
            color: Colors.white,
          ),
        ),
        Expanded(
          child: ListView.builder(
            padding: EdgeInsets.only(top: 0.0),
            itemCount: 22,
            itemBuilder: (context, index) {
              return Ink(
                color: true ? Colors.blueGrey : null,
                child: ListTile(
                  title: Text("profession.heading"),
                  onTap: () {},
                  leading: index == 0
                      ? Icon(
                          Icons.home,
                        )
                      : Icon(Icons.description),
                ),
              );
            },
          ),
        ),
      ],
    ),
  );
Container(
            height: double.maxFinite,
            child: ListView.builder(
                itemCount: data == null ? 0 : data.length,
                itemBuilder: (BuildContext context, i) {
                  return new ListTile(
                    title: new Text(data[i]["title"]),
                  );
                }))

Мы можем просто добавить физику: ClampingScrollPhysics() в ListView.builder, и он отлично прокручивается.

Другие вопросы по тегам