看完本系列文章後你將可以作出以下100%還原攜程 V8.22.0
首頁 GridNav
的界面:ide
開始前請先按照Flutter實現攜程GirdNav佈局_準備工做中的步驟完成準備工做;函數
注: 如下所有代碼改變都在grid_widget.dart
文件中機進行;佈局
將 build
函數下方添加以下代碼post
Widget _hotelRow() {
return ClipRRect(
// todo: add top corner
child: Container(
height: 65,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: _hotelColors,
stops: [0, 0.54],
),
),
// todo: add hotel row
),
);
}
Widget _flightRow() {
return Container(
height: 65,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: _flightColors,
stops: [0, 0.54],
),
// todo: add top border
),
// todo: add flight row
);
}
Widget _travelRow() {
return ClipRRect(
// todo: add bottom corner
child: Container(
height: 65,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: _travelColors,
stops: [0, 0.54],
),
// todo: add top border
),
// todo: add travel row
),
);
}
複製代碼
⚠️注意是:ClipRRect
⚠️ui
將 build
函數中的spa
// todo: add grid rows
return Container();
複製代碼
替換爲:code
return Column(
children: <Widget>[
_hotelRow(),
_flightRow(),
_travelRow(),
],
);
複製代碼
F5
運行到模擬器,查看cdn
添加corner
和border
:blog
將 // todo: add top corner
替換爲:ip
borderRadius: BorderRadius.only(
topLeft: const Radius.circular(8),
topRight: const Radius.circular(8),
),
複製代碼
將 // todo: add bottom corner
替換爲:
borderRadius: BorderRadius.only(
bottomLeft: const Radius.circular(8),
bottomRight: const Radius.circular(8),
),
複製代碼
將兩處 // todo: add top border
替換爲:
border: Border(
top: _borderSide,
),
複製代碼
而後 cmd
+ s
保存更改後界面將會熱更新以下:
至此,總體頁面佈局已經結束;
接下來請移步: Flutter實現攜程GirdNav佈局_hotel佈局