|
- import 'package:flutter/material.dart';
- import 'package:zhiying_base_widget/widgets/home_goods/home_goods.dart';
- import 'package:zhiying_comm/zhiying_comm.dart';
-
- class GoodsListCreater extends WidgetCreater {
- @override
- List<Widget> createWidgets(Map<String, dynamic> model) {
- TabController controller =
- TabController(initialIndex: 0, length: 6, vsync: ScrollableState());
- return [
- _createHeader(controller),
- _createBody(controller),
- ];
- }
-
- @override
- List<Widget> createSkeleton(Map<String, dynamic> model) {
- return [];
- }
-
- Widget _createHeader(TabController controller) {
- return SliverPersistentHeader(
- pinned: true,
- floating: false,
- delegate: GoodsHeaderDelegate(controller),
- );
- }
-
- Widget _createBody(TabController controller) {
- // return SliverToBoxAdapter(
- // child: Container(
- // width: double.infinity,
- // height: 200,
- // // child: Expanded(child: Container()),
- // child: TabBarView(
- // controller: controller,
- // children: <Widget>[
- // Icon(Icons.directions_bike, size: 128.0, color: Colors.black12),
- // ListView.builder(
- // itemCount: 20,
- // itemBuilder: (context, index) {
- // return Container(
- // width: double.infinity,
- // height: 70,
- // color: Colors.primaries[index % Colors.primaries.length],
- // );
- // }),
- // Icon(Icons.directions_bike, size: 128.0, color: Colors.black12),
- // Icon(Icons.local_florist, size: 128.0, color: Colors.black12),
- // Icon(Icons.change_history, size: 128.0, color: Colors.black12),
- // Icon(Icons.directions_bike, size: 128.0, color: Colors.black12),
- // ],
- // ),
- // ),
- // );
- return SliverToBoxAdapter(
- child: HomeGoods(),
- );
- }
-
- @override
- bool isSliverChild() {
- return true;
- }
- }
-
- class GoodsHeaderDelegate extends SliverPersistentHeaderDelegate {
- final TabController controller;
-
- GoodsHeaderDelegate(this.controller);
-
- @override
- Widget build(
- BuildContext context, double shrinkOffset, bool overlapsContent) {
- // print(shrinkOffset.toString());
- return Container(
- color: Colors.red,
- alignment: Alignment.center,
- child: TabBar(
- controller: controller,
- isScrollable: true,
- tabs: <Widget>[
- Tab(icon: Icon(Icons.local_florist)),
- Tab(icon: Icon(Icons.change_history)),
- Tab(icon: Icon(Icons.directions_bike)),
- Tab(icon: Icon(Icons.local_florist)),
- Tab(icon: Icon(Icons.change_history)),
- Tab(icon: Icon(Icons.directions_bike)),
- ],
- ),
- );
- }
-
- @override
- double get maxExtent => 60.0;
-
- @override
- double get minExtent => 60.0;
-
- @override
- bool shouldRebuild(SliverPersistentHeaderDelegate oldDelegate) =>
- false; // 如果内容需要更新,设置为true
- }
|