https://github.com/zzxingqiba/flutter_demo

import 'package:flutter/material.dart';
class SliverDemo extends StatelessWidget {
const SliverDemo({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(
slivers: [
SliverAppBar(
// title: Text('哈哈哈'), //與下面的title留一個就好
// pinned: true, //是否固定住bar
// floating: true, //往下滑消失 向上稍微滑動一點 立即出現bar
expandedHeight: 178.0, //伸展空間
flexibleSpace: FlexibleSpaceBar(
centerTitle: true, //标題居中
// titlePadding: EdgeInsets.all(0.0), //預設有padding 需要自己調整下
title: Text(
'哇哈哈哈哈',
style: TextStyle(
fontSize: 15.0,
fontWeight: FontWeight.bold,
// letterSpacing: 3.0,
),
),
background: Image.network(
'https://img0.baidu.com/it/u=728913830,1403643466&fm=26&fmt=auto&gp=0.jpg',
fit: BoxFit.cover, //填充
),
),
),
SliverSafeArea(
//劉海屏 SliverSafeArea顯示在安全區域
sliver: SliverPadding(
padding: EdgeInsets.all(8.0),
sliver:
SliverListDemo(), //SliverGrid沒有padding屬性 ,是以要嵌套一層SliverPadding
),
),
],
),
);
}
}
class SliverGridDemo extends StatelessWidget {
const SliverGridDemo({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return SliverGrid(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return Container(
color: Colors.brown[900],
alignment: Alignment(0.0, 0.0),
child: Text(
'$index',
style: TextStyle(fontSize: 32.0, color: Colors.white),
),
);
},
childCount: 5,
),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 8.0,
mainAxisSpacing: 8.0,
),
);
}
}
class SliverListDemo extends StatelessWidget {
const SliverListDemo({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return Padding(
padding: EdgeInsets.only(
bottom: 32.0,
),
child: Material(
borderRadius: BorderRadius.circular(10.0),
elevation: 14.0,
shadowColor: Colors.grey.withOpacity(0.5),
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
child: Image.network(
'https://img1.baidu.com/it/u=2233362797,2905857249&fm=26&fmt=auto&gp=0.jpg',
fit: BoxFit.cover, //填充
),
),
),
),
);
},
childCount: 5,
),
);
}
}