如何控制 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)
)
],
);
},
),
);
}
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)
)
],
);
},
),
);
}