屏幕快照 2019-09-19 17.31.54.png
一個簡單我的頁面,之前做過iOS的應(yīng)該知道变泄,TableView 可以設(shè)置section header亮元,但是ListView沒有區(qū)分Section和Row袖外。ListView有ListTile汁掠,但是我還是自定義了一個
import 'package:flutter/material.dart';
class MineItemWidget extends StatelessWidget {
String imageName;
String title;
@required VoidCallback onTap;
MineItemWidget(this.imageName,this.title,{this.onTap});
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Container(
height: 53,
child: _mineItem(imageName, title),
),
Container(
color: Color(0xffeaeaea),
constraints: BoxConstraints.expand(height: 1.0),
),
],
)
);
}
Widget _mineItem(String imageName,String title) {
return InkWell(
onTap: (){
this.onTap();
},
child: Row(
children: <Widget>[
Expanded(
flex: 1,
child: Container(
padding: EdgeInsets.only(left: 16),
child: Image.asset(
imageName,
width: 30,
height: 30,
),
),
),
Expanded(
flex: 6,
child: Container(
padding: EdgeInsets.only(left: 10),
child: Text(
title,
style: TextStyle(fontSize: 16),
),
),
),
Expanded(
flex: 1,
child: Container(
child: Icon(
Icons.keyboard_arrow_right,
size: 20,
color: Colors.grey,
),
),
),
],
),
);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('我的'),
backgroundColor: Colors.deepOrange,
elevation: 0, //去掉Appbar底部陰影
),
body: ListView(
children: <Widget>[
MineHead(),
_listViewLine, // 分割線
MineItemWidget("images/tab_car_n.png","發(fā)布記錄",onTap: (){
print('發(fā)布記錄');
}),
MineItemWidget("images/tab_car_n.png","車主認(rèn)證",onTap: (){
}),
_listViewLine,
MineItemWidget("images/tab_car_n.png","聯(lián)系客服",onTap: (){
}),
],
));
}
// 分割線
Widget get _listViewLine {
return Container(
color: Color(0xffeaeaea),
height: 6,
);
}
如果使用ListView.builder初始化還需要根據(jù)index判斷什么時候加在ListView中加分割線略吨。所以使用上面這種方式。