Flutter-ListView不在抽屉内滚动

时间:2019-11-22 07:40:23

标签: android listview flutter drawer flutter-container

我在Drawer Widget中使用了ListView,并在该ListView中使用了ListView.Builder来打印菜单。现在,所有菜单都可以完美打印,但是抽屉不滚动。如何使其滚动?

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的新手,也是Stack Overflow的新手。我也想上传图片,但是这个网站说,我至少需要10个信誉...所以,我只有一个代码供您使用。希望您能解决并帮助我。

3 个答案:

答案 0 :(得分:0)

尝试一下,用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),
                ),
              );
            },
          ),
        ),
      ],
    ),
  );

答案 1 :(得分:0)

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"]),
                  );
                }))

答案 2 :(得分:0)

我们可以添加 物理:ClampingScrollPhysics(), 到ListView.builder并完美滚动