flutter tabbar上滑显示(滚动渐变)

import 'package:flutter/material.dart';

class Demo extends StatefulWidget {
  @override
  _DemoState createState() => _DemoState();
}

class _DemoState extends State {
  ScrollController _scrollController;
  double _presetOffset = 200.0;
  int _opacity = 0;
  List _items = [];

  @override
  void initState() {
    super.initState();
    _scrollController = ScrollController()
      ..addListener(() {
        setState(() {
          _opacity = _scrollController.offset > _presetOffset
              ? 255
              : _scrollController.offset * 255 ~/ _presetOffset;
        });
      });
    for (var i = 0; i < 20; i++) {
      _items.add('item$i');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.pink,
      extendBodyBehindAppBar: true,
      appBar: AppBar(
        elevation: 0,
        backgroundColor: Theme.of(context).primaryColor.withAlpha(_opacity),
        title: Text(
          'title',
          style: TextStyle(
            color: Colors.white.withAlpha(_opacity),
          ),
        ),
      ),
      body: ListView.builder(
          controller: _scrollController,
          itemCount: _items.length,
          itemBuilder: (_, index) {
            return Container(
              color: Colors.pink,
              height: 100,
              child: Row(
                children: [Text('${_items[index]}')],
              ),
            );
          }),
    );
  }
}

你可能感兴趣的:(flutter)