如何控制 flutter-headash 列表视图的高度

how to control height of listview of flutter- headash

listview 占据了所有页面,而它的内容占页面的 25%,我想在它下面放一些东西..

如何控制它的高度,我custom_listview没用,我可以直接把它放在我的屏幕上,你觉得怎么样

截图在我的问题的底部。

请帮助我,因为我很头疼并停止编码

custom_listview


class CustomListView_issues extends StatelessWidget {
    final List<Issue> issues;
    CustomListView_issues(this.issues);

    Widget build(context) {
        return ListView.builder(
            shrinkWrap: true,
            itemCount: issues.length,
            itemBuilder: (context, int currentIndex) {
                return Stack(
                    children: <Widget>[
                        Container(
                            width:double.infinity,
                            color: Colors.grey[50],
                            child: createViewItem(issues[currentIndex], context)
                        )
                    ],
                );
            },
        );
    }

    Widget createViewItem(Issue issue, BuildContext context) {
        return new Container(
            decoration: BoxDecoration(
                color: Colors.grey[50],
            ),
            child: ListTile(
                title: new Card(
                    elevation: 0,
                    child: new Container(
                        color: Colors.grey[50],
                        width: 100,
                        child: Column(
                            children: <Widget>[
                                _getListTile(issue.issueNote, issue.image)
                            ],
                        ),
                    ),
                )
            )
        );
    }

    Widget _getListTile(issueNote,image){
        return new Container(
            width:double.infinity,
            color: Colors.grey[50],
         //   height: 50.0,
            child: new Row(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                    _getIssueNoteWidget(issueNote),
                    _getImgWidget(image)
                ],
            ),
        );
    }


    Widget _getIssueNoteWidget(String description){
        return new Container(
            width: 200,
            margin: new EdgeInsets.only(top: 5),
            child: Text(description, maxLines: 3 ,style: new TextStyle(fontSize: 15))
        );
    }


    Widget _getImgWidget(String url){
        return new Container(
            width: 50.0,
            height: 30.0,
            child: new ClipRRect(
                borderRadius: new BorderRadius.only(topLeft: const Radius.circular(1.0),bottomLeft: const Radius.circular(6.0)),
                child: new Image.asset('images/place_holder.jpg')
            ),
        );
    }

}
//end class customListView

我的屏幕

body: Column(
                mainAxisSize: MainAxisSize.min,
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: [
                   Container(
                       .... codes
                    ),
                    Expanded(child: _getExpanded()),
                    Container(
                        child:Column(
                            children: [
                                Text("Address")
                            ],
                        )
                    ),

                ],
            )

 Widget _getExpanded() {
        return Stack(
            children: [
                Container(child: CustomListView_issues(issues))
            ],
        );
    }

看看结果

如果可以请帮忙..

编辑:列表视图高度不固定,它可能有 1 个子项或 10 个子项

发生这种情况是因为您将 Expanded 包裹在 ListView 周围。如果您删除 Expanded,您的 ListView 将只占用必要的 space。

Column(
                mainAxisSize: MainAxisSize.min,
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: [
                   Container(
                      // .... codes
                    ),
                    _getExpanded(),
                    Container(
                        child:Column(
                            children: [
                                Text("Address"),
                            ],
                        )
                    ),

                ],
            ),

ListView 包裹在容器中。

您可以将 ListView 包裹在 Container 小部件中并设置固定高度:

 Widget build(context) {
        return Container(
          height: 100px //here you set desired height
          ListView.builder(
            shrinkWrap: true,
            itemCount: issues.length,
            itemBuilder: (context, int currentIndex) {
                return Stack(
                    children: <Widget>[
                        Container(
                            width:double.infinity,
                            color: Colors.grey[50],
                            child: createViewItem(issues[currentIndex], context)
                        )
                    ],
                );
            },
        ),
      );
    }