|
- import 'package:flutter/material.dart';
- import 'package:provider/provider.dart';
- import 'package:zhiying_base_widget/pages/main_page/notifier/main_page_bg_notifier.dart';
-
- class MineHeaderBgWidget extends StatefulWidget {
- final ScrollController controller;
-
- const MineHeaderBgWidget({Key key, this.controller}) : super(key: key);
-
- @override
- _MineHeaderBgWidgetState createState() => _MineHeaderBgWidgetState();
- }
-
- class _MineHeaderBgWidgetState extends State<MineHeaderBgWidget> {
- int zIndex = 0;
- double _offsetY = 0;
- double _height = 300;
- _MineHeaderBgContainer _content;
-
- @override
- void initState() {
- super.initState();
- _content = _MineHeaderBgContainer();
-
- if (widget.controller != null) {
- widget.controller.addListener(() {
- if (widget.controller.offset > _height) {
- // 减少重绘
- return;
- }
- _offsetY = -widget.controller.offset;
- if (_offsetY > 0) {
- _offsetY = 0;
- }
- setState(() {});
- });
- }
- }
-
- @override
- void dispose() {
- super.dispose();
- }
-
- @override
- void didChangeDependencies() {
- super.didChangeDependencies();
- print('didChangeDependencies');
-
- // if (isNeedLoadMore && _provider != '') {
- // print('HomeGoods loadmore...');
- // _bloc.loadMore(_provider);
- }
-
- @override
- Widget build(BuildContext context) {
- print('mmine_hider_bg_widget build');
- return Transform.translate(
- offset: Offset(0, _offsetY),
- child: _content,
- );
- }
-
- // @override
- // Widget build(BuildContext context) {
- // return Container(
- // height: 300,
- // width: double.infinity,
- // child: Stack(
- // children: imageUrls
- // .asMap()
- // .keys
- // .map<Widget>((i) => AnimatedOpacity(
- // curve: Curves.easeIn,
- // duration: Duration(milliseconds: 1600),
- // opacity: i == zIndex ? 1 : 0,
- // child: Container(
- //// color: Color(int.parse(list[i], radix: 16))
- //// .withAlpha(255),
- // child: CachedNetworkImage(
- // imageUrl: imageUrls[i],
- // fit: BoxFit.fill,
- // ),
- // height: 300, //100%
- // ),
- // ))
- // .toList(),
- // ));
- // }
- }
-
- class _MineHeaderBgContainer extends StatefulWidget {
- @override
- _MineHeaderBgContainerState createState() => _MineHeaderBgContainerState();
- }
-
- class _MineHeaderBgContainerState extends State<_MineHeaderBgContainer> {
- @override
- Widget build(BuildContext context) {
- print('_MineHeaderBgContainerState build');
- return Consumer<MainPageBgNotifier>(builder: (context, model, widget) {
- return Stack(
- fit: StackFit.passthrough,
- overflow: Overflow.clip,
- children: <Widget>[
- model.toWidget ?? Container(),
- ],
- );
- });
- }
- }
|